mustStartLoadWithRequest добавляет ссылку с applewebdata

Я получаю текст описания в формате HTML, и я загружаю его в веб-просмотр, если ссылка была нажата в описании, поэтому я загружаю его в отдельный контроллер представления. Но shouldStartLoadWithRequest дает некоторую добавленную ссылку. вот мой код

- (BOOL)webView:(UIWebView *)webView shouldStartLoadWithRequest:(NSURLRequest *)request navigationType:(UIWebViewNavigationType)navigationType { if(navigationType == UIWebViewNavigationTypeLinkClicked) { UIStoryboard *storyboard = [UIStoryboard storyboardWithName:@"MainStoryboard" bundle:nil]; WebsiteViewController *vc = [storyboard instantiateViewControllerWithIdentifier:@"WebsiteViewController"]; vc.url = request.URL.absoluteString; NSLog(@"link is : %@", [[request URL] absoluteString]); [self.navigationController pushViewController:vc animated:YES]; return false; } return true; } 

он печатает это

 link is : applewebdata://038EEEBF-A4C9-4C7D-8FB5-32056714B855/www.yahoo.com 

и я загружаю его так

 [webViewDescription loadHTMLString:description baseURL:nil]; 

Поскольку вы используете loadHTMLString и вы устанавливаете baseURL на nil, поэтому схема URI applewebdata используется iOS вместо «http» в URI, используемых для доступа к внутренним ресурсам на устройстве. Вы можете попробовать установить baseURL

У меня была аналогичная проблема. На практике установка baseURL на «http: //» или что-то в этом роде тоже не работала. Я также видел applewebdata схему applewebdata примерно в 50% случаев, остальные 50% времени я видел правильную схему, которую я ожидал.

Чтобы решить эту проблему, я перехватил -webView:shouldStartLoadWithRequest:navigationType: обратные вызовы и использование регулярного выражения для applewebdata схемы applewebdata Apple. Вот как это выглядело

 // Scheme used to intercept UIWebView callbacks static NSString *bridgeScheme = @"myCoolScheme"; - (BOOL)webView:(UIWebView *)webView shouldStartLoadWithRequest:(NSURLRequest *)request navigationType:(UIWebViewNavigationType)navigationType { BOOL shouldStartLoad = YES; NSURL *requestURL = request.URL; // Strip out applewebdata://<UUID> prefix applied when HTML is loaded locally if ([requestURL.scheme isEqualToString:@"applewebdata"]) { NSString *requestURLString = requestURL.absoluteString; NSString *trimmedRequestURLString = [requestURLString stringByReplacingOccurrencesOfString:@"^(?:applewebdata://[0-9A-Z-]*/?)" withString:@"" options:NSRegularExpressionSearch range:NSMakeRange(0, requestURLString.length)]; if (trimmedRequestURLString.length > 0) { requestURL = [NSURL URLWithString:trimmedRequestURLString]; } } if ([requestURL.scheme isEqualToString:bridgeScheme]) { // Do your thing shouldStartLoad = NO; } return shouldStartLoad; } 
  • Как получить доступ к ресурсу изображения в каталоге активов из UIWebView (или WKWebView)
  • UIWebView не сразу останавливается
  • Progressbar WebView в Swift
  • Переадресация HTML в тегах тела?
  • Загрузка текущей геолокации в UIWebView
  • Игнорирование недопустимых сертификатов сервера с помощью UIWebView
  • Как потоковое видео через безопасное соединение на iOS
  • Создание webViews программно в Swift
  • Как загрузить локальный PDF-файл в UIWebView в Swift
  • Как показать строку html в UIWebview в iPhone?
  • Обнаруживать, если запрос веб-страницы, если из браузера и UIWebView
  • Interesting Posts

    Ошибка «« sharedApplication »недоступна: недоступна в iOS (расширение приложения) …» при компиляции после обновления pod

    Динамическая пользовательская высота UITableViewCell, основанная на длине текста ярлыка в Swift

    Включение уведомления PUSH в существующем загруженном приложении

    Обосновать текст в iOS (Swift или Objective-C) без нарушения отслеживания / кернинга / межстрочного интервала

    Асинхронная загрузка изображения UITableViewCell с использованием GCD

    Ускорение аппаратного обеспечения при утечке памяти веб-приложения

    Каков идеальный способ сделать выход из приложения IOS?

    Как получить строку между слэшами -Swift

    Фиксирование индикатора сетевой активности

    Аутентификация требований к SharePoint на iPhone

    Как получить общий ключ для шифрования SSL?

    Передает два параметра nil в initWithNibName: метод bundle: метод плохой (т.е. небезопасный или медленный)?

    Вызов layoutSubviews для динамического изменения размера uilabel внутри uicollectionviewcell

    установочное изображение для UIBarButtonItem – изображение растянуто

    Предотвращение перемещения пользовательского интерфейса при появлении клавиатуры

    Давайте будем гением компьютера.