UIWebView完成加载事件

当UIWebView(Iphone)完成加载URL时,是否可以启动事件?

我怎样才能找出UIWebView的当前url?

最好的祝福,

安德烈亚斯

是的,这是可能的。 使用UIWebViewDelegate协议并在您的委托中实现以下方法:

 - (void)webViewDidFinishLoad:(UIWebView *)webView 

如果您需要URL,您可以使用属性request获取最后一个request

 webView.request.URL 

没有find解决scheme为我工作。

然后我发现这个例子至less比我在Google / StackOverflow上find的任何其他解决scheme都要好得多。

UIWebView的负载完成跟踪器

非常简单的方法:

第1步:在头文件中设置委托UIWebViewDelegate

第2步:添加以下webViewDidFinishLoad方法来获取当前webview URL

 - (void)webViewDidFinishLoad:(UIWebView *)webView { NSLog(@"Current URL = %@",webView.request.URL); //-- Add further custom actions if needed } 

帕斯卡的“获取URL”部分的答案是好的。

然而!

从Apple的UIWebViewDelegate文档:“webViewDidFinishLoad:在Web视图完成加载帧后发送”。

帧!=页。

webViewDidFinishLoad在页面“完成加载”时被调用。 在此之前也可以多次调用。 来自Amazon.com的页面加载可以生成一打到webViewDidFinishLoad的调用。

如果您控制页面源,那么您可以对其进行负载testing,对于这种情况,它将起作用。 如果你只关心在页面加载完成后调用,那么webViewDidFinishLoad就足够了。

对于任意页面,使用任意JavaScript,永久加载广告横幅或自动滚动横幅,或者实现video游戏,页面被“完成加载”的想法是错误的。