【问题标题】:UIWebView goBack problemUIWebView goBack问题
【发布时间】:2011-08-13 15:34:51
【问题描述】:

我像这样加载我的 html 数据:

[webView loadData:htmlData MIMEType:@"text/html" textEncodingName:@"UTF-8" baseURL:url];

但是当被调用时:

[WebView goBack];

webView 无法返回该 html 页面。

我该怎么办? 我欢迎任何回应。

【问题讨论】:

  • 我刚刚制作了一个小应用程序来测试您的问题,它运行良好,UIWebView 可以正确导航到后面,您能否提供您正在使用的代码?

标签: objective-c uiwebview webview loaddata


【解决方案1】:

如果您在 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];
    }
}

【讨论】:

    【解决方案2】:

    我也有同样的问题。我自己的解决方案是创建一个按钮以返回缓存的 html 数据页面。这个按钮调用了一个方法,在viewDidLoad中也调用了这个方法来初始化webview。

    我的案例是从网站加载 rss 数据,然后创建 html 字符串,使用 loadHTMLString 与 webview 一起显示。这个html页面有一些链接,点击链接后,返回按钮可以正常使用,但是无法跳转到第一页——rss显示的页面。

    【讨论】:

      【解决方案3】:

      请尝试以下方法:

       NSString *urlAddress = @"http://www.stackoverflow.com";
      
       NSURL *url = [NSURL URLWithString:urlAddress];
      
       NSURLRequest *requestObj = [NSURLRequest requestWithURL:url cachePolicy:NSURLRequestReloadIgnoringCacheData timeoutInterval:60];
      
       [self.webview loadRequest:requestObj];
      

      然后试试你的后退导航:

       [self.webview goBack]; 
      

      【讨论】:

      • loadRequest 不是我想要的。我需要加载 html 数据。当转到其他页面并调用 goback 时,webview 想要返回加载缓存 html 数据的页面。但似乎 webview不缓存 html 数据。
      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2013-09-13
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多