NSURL _fastCStringContents: некоторые URL-адреса ссылок дают ошибку при попытке открыть приложение из iOS - PullRequest
0 голосов
/ 29 октября 2019

Я пытаюсь открыть ссылку в браузере Safari из моего приложения для iOS. Это гибридное приложение, поэтому я внес изменения в нативную часть iOS (с которой я совершенно незнаком)

Я попробовал этот код из следующих сообщений: Open target = "_ blank" ссылки вне UIWebView в Safari

   NSLog(@"open safari");
           //   NSLog(urlSafari);
           // [[UIApplication sharedApplication] openURL:urlSafari];
            [[UIApplication sharedApplication] openURL:[NSURL URLWithString:[request.URL.absoluteString substringFromIndex:7]]];
             //[NSURL URLWithString:@"http://apple.com"] options:@{} completionHandler:nil];
            return NO;

Этот код отлично работает в 6/10 случаях, в 4 случаях он выдает ошибку ниже и прекращает навигацию в браузере Safari. Если я снова загружаю ту же страницув приложении, а затем он работает нормально. В другой раз это не так.

Ошибка выдает меня при нажатии на следующие ссылки: 2019-10-29 12: 07: 35.341 AppName [62467: 679879] open safari

2019-10-29 12: 07: 35.363 AppName [62467: 679879] - [NSURL _fastCStringContents:]: нераспознанный селектор отправлен в экземпляр 0x60000006ed50

2019-10-29 12: 07: 35.363AppName [62467: 679879] *** WebKit отбросил необработанное исключение в веб-представлении: managePolicyForNavigationAction: request: frame: SolutionListener: делегат: - [NSURL _fastCStringContents:]: нераспознанный селектор, отправленный экземпляру 0x60000006ed50

2019-10-29 12: 07: 36.045 AppName [62467: 679879] DataManager saveAppData appData: <> |

2019-10-29 12: 07: 36.249 AppName [62467: 679879] Не удается завершить BackgroundTask: без фоназадание существует с идентификатором 22 (0x16) или, возможно, оно уже завершено. Перерыв в UIApplicationEndBackgroundTaskError () для отладки.

Из всего проведенного поиска он указывает на проверку NSURL или передается неверное значение, которое не может пройти проверку NSURL. но не уверен, как это исправить

...