0

我接手了一个项目,在这个应用程序中,这里的主要目标是拥有一个 web 视图,并根据字符串检查检查每个页面加载 URL,以确定需要执行哪些后台功能。

问题是,webViewDidFinishLoad 似乎只在创建 webview 本身时触发一次。任何时候点击内部链接,它都不会再次触发。

在 onViewLoad 中,我确实将委托设置为 self,并且无论如何事情都相对到位,但这并不是在每次页面加载时都被触发。

这说。

shouldStartLoadWithRequest 可以。但是,因为它正在启动请求,并且在事件触发时 URL 还没有完全加载,所以当我使用它时,它会获取请求页面的当前 URL 而不是目标 URL

NSString *curURL = [webView stringByEvaluatingJavaScriptFromString:@"window.location.href"];

其他函数要么不返回任何内容,要么与上面的函数完全相同

//NSString *curURL = self.webView.request.URL.absoluteString;
//NSString *curURL = webView.request.mainDocumentURL.absoluteString;

所以,我在这里不知所措,在Android上做这个相对简单,但是webView的方法数量有限让我郁闷..

4

1 回答 1

0

问题出在使用 jQueryUI Mobile 1.0.4 的网站上。这不仅通过在混合中附加一个 # 和下一个 url 来加载 url,

http://url.com/somepage.php?item=1#/somepage.php?item=2

此外,这样做会以某种方式诱使 webView 认为页面已更改,尽管直接更改了 URL。因此,webViewDidFinishLoad 在使用库加载后续页面后永远不会触发。

伤心。图书馆看起来也不错。

于 2012-10-31T20:44:51.330 回答