UIWebView GoBack проблема
Я загружаю свои данные HTML, как это:
[webView loadData:htmlData MIMEType:@"text/html" textEncodingName:@"UTF-8" baseURL:url];
Но когда называется:
[WebView goBack];
WebView не может вернуться на эту HTML-страницу.
Что я должен делать? Я ценю любой ответ.
3 ответа
Если ваша начальная страница в UIWebView - это не удаленная страница (например, www.yahoo.com), а просто локальный HTML-файл, после нажатия любой ссылки на этой первой странице вы будете перенаправлены, но goBack
метод станет недоступным для возврата на первую начальную страницу (html-файл). Вы можете использовать небольшой взлом для этого. UIWebView имеет параметр BOOL только для чтения canGoBack
, что указывает на возможность возврата. Обычно используется для отключения / включения кнопки "назад". Я использую что-то вроде этого:
- (void) userPressedGoBackButton {
if ([self.webView canGoBack]) {
[self.webView goBack];
} else {
[self.webView loadData:htmlData MIMEType:@"text/html" textEncodingName:@"UTF-8" baseURL:url];
}
}
У меня такой же вопрос. Решение для меня состоит в том, чтобы создать кнопку, чтобы вернуться на страницу с кэшированными HTML-данными. Эта кнопка вызывает метод, который также вызывается в viewDidLoad для инициализации веб-просмотра.
В моем случае загружаются данные rss с веб-сайта, а затем создается строка html, которая отображается в веб-просмотре с использованием loadHTMLString. На этой html-странице есть несколько ссылок, после нажатия на которые кнопка возврата работает нормально, но не может перейти на первую страницу - страницу, отображаемую в rss.
Пожалуйста, попробуйте что-то вроде этого:
NSString *urlAddress = @"http://www.stackru.com";
NSURL *url = [NSURL URLWithString:urlAddress];
NSURLRequest *requestObj = [NSURLRequest requestWithURL:url cachePolicy:NSURLRequestReloadIgnoringCacheData timeoutInterval:60];
[self.webview loadRequest:requestObj];
а затем попробуйте вернуться назад:
[self.webview goBack];