5

我正在使用一些工具栏按钮来返回和转发 UIWebview 中的历史网页。 在此处输入图像描述

我正在使用[webview canGoBack]调用 at启用/禁用这些按钮webViewDidStartLoad。在大多数网站上都可以正常工作,但问题是,在twitterfacebook等使用 javascript/ajax 请求重新加载新页面canGoBack并且canGoForward无法识别页面更改的网站上,我的按钮不会变为活动状态。

有办法解决这个问题吗?

4

3 回答 3

1

以我的经验,站点本身必须在其 AJAX 请求之上支持后退/转发。它需要 Web 应用程序更改每个页面导航的 URL。

有关此问题的一些讨论,请参见http://www.devx.com/webdev/Article/35549

所以,具体到您的问题 - 如果它是您自己的网络应用程序,那绝对是可能的(有几个 javascript 解决方案,其中一个在上面链接),但对于 3rd 方网络应用程序,我会说不。

于 2012-08-24T16:28:34.473 回答
1

设法使用webView:shouldStartLoadWithRequest:navigationType拼凑一个解决方案:

- (BOOL)webView:(UIWebView *)myWebView shouldStartLoadWithRequest:(NSURLRequest *)request navigationType:(UIWebViewNavigationType)navigationType;

此时我启用了后退按钮。似乎工作正常。

于 2012-09-14T12:34:32.690 回答
0
  • (void)webViewDidStartLoad:(UIWebView *)webView{

    [SVProgressHUD showWithStatus:@"请稍候..."];

    if (webView.canGoBack) { self.navigationItem.leftBarButtonItem = [[UIBarButtonItem alloc] initWithCustomView:btnBack]; } else { self.navigationItem.leftBarButtonItem = [[UIBarButtonItem alloc] init]; } }

于 2018-01-11T12:09:06.523 回答