UIWebView не будет запускаться после загрузки HTML в iOS

У меня такая проблема в моем приложении для iPhone: у меня есть webView, который сначала загружается HTML-строкой. После того, как пользователь нажмет на ссылку и загрузит запрошенную страницу, webView не вернется, когда я вызову метод [UIWebView goBack]; Я полагаю, что webView не кэширует строку HTML. Можно ли каким-либо образом сделать кеш WebView моей HTML-строкой без необходимости сохранять ее в самой NSString?

3 Solutions collect form web for “UIWebView не будет запускаться после загрузки HTML в iOS”

Вы можете использовать свойство canGoBack, и если вы не можете вернуться, перезагрузите UIWebView исходным html. Если пользователь перешел по ссылкам по ссылкам, свойство canGoBack вернет YES и в UIWebView можно запустить goBack. _htmlString – это переменная-член, которая устанавливается, когда UIWebView инициализируется с использованием строки HTML. -rrh

 - (void)goBack { if (_htmlString && ![_browserWebView canGoBack]) { [_browserWebView loadHTMLString:_htmlString baseURL:nil]; return; } [_browserWebView goBack]; } 

Это похоже на то, что ваша переменная webview неправильно связана с используемым вами экземпляром webview. Точка останова при этом вызове и проверьте, является ли ваша переменная webView «ноль».

Если это так, убедитесь, что ваш webView в вашем XIB-файле связан с переменной IBOutlet в Interface Builder. Это распространенная ошибка и то, что я обычно забываю при разработке новой страницы в первый раз.

В этом учебном пособии рассматривается LOT о том, как создавать интерфейсы с помощью Interface Builder, который, я уверен, вы знакомы, но для тех, кому это не так полезно. У этого есть несколько хороших скриншотов, которые помогают проиллюстрировать, что я подразумеваю под «привязкой» лучше, чем я набираю «щелкните значок« + »и перетащите маленькую штуку на элемент пользовательского интерфейса» 🙂

http://www.icodeblog.com/2008/07/30/iphone-programming-tutorial-connecting-code-to-an-interface-builder-view/

РЕДАКТИРОВАТЬ

Единственное, что я могу придумать, это то, что вы переписываете переменную webView, повторно инициализируя ее где-то (она уже инициализирована XIB), и поэтому вы вызываете goBack на веб-просмотр, который не существует на экране.

Попробуйте создать NSURLRequest из URL-адреса файла и используйте loadRequest вместо loadhtmlString

 NSURL *htmlFileUrl = [[NSBundle mainBundle] URLForResource:@"index" withExtension:@"html"]; NSURLRequest *localRequest = [NSURLRequest requestWithURL:htmlFileUrl]; self.webView.delegate = self; [self.webView loadRequest:localRequest]; 
  • Лучший способ отразить UIWebView
  • WKWebView - didFailProvisionalNavigation не вызывается при сбое компонента
  • Игнорирование недопустимых сертификатов сервера с помощью UIWebView
  • Загрузить фотографию с помощью UIWebView
  • Служба определения местоположения в UIWebView на iOS8 beta 5 не работает
  • DOMException 105 только во время тестирования пользовательского интерфейса
  • Использование пользовательского NSURLProtocol с запросами UIWebView и POST
  • UIWebView не загружает ответную веб-страницу правильно
  • Отображать SVG-файл и аннотацию отображения поверх SVG-файла в iOS
  • Предотвращение раздражающих предупреждений о геолокации HTML5 внутри UIWebView
  • Измените конкретный код UIWebView, чтобы иметь адресную строку, похожую на Safari
  • Массивный утечек памяти UIWebView
  • PhoneC: Разработка iOS проста с помощью XCode, Swift3, UITableView, cocatouch, давайте создадим приложения для iPhone, iPad и Macbook.