UIWebView完成加载事件

时间:2009-11-02 17:20:46

标签: iphone uiwebview loading

当UIWebView(Iphone)加载完URL后,是否可以启动事件。

我怎样才能找到UIWebView的当前URL?

4 个答案:

答案 0 :(得分:75)

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

- (void)webViewDidFinishLoad:(UIWebView *)webView

如果您需要该网址,则可以使用该属性request获取最后一个请求:

webView.request.URL

答案 1 :(得分:2)

找不到任何解决方案对我有用。

然后我发现这个例子至少比我在Google / StackOverflow上找到的任何其他解决方案都好得多。

uiwebview-load-completion-tracker

答案 2 :(得分:1)

非常简单的方法:

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

第2步:添加以下webViewDidFinishLoad方法以获取webview的当前网址

- (void)webViewDidFinishLoad:(UIWebView *)webView
{
    NSLog(@"Current URL = %@",webView.request.URL);

    //-- Add further custom actions if needed 
}

答案 3 :(得分:1)

Pascal对“获取URL”部分的回答很好。

然而!

来自Apple的UIWebViewDelegate文档: “webViewDidFinishLoad:在Web视图完成加载框架后发送。”

Frame!= Page。

当页面“完成加载”时,将调用webViewDidFinishLoad。在此之前也可以多次调用它。来自Amazon.com的页面加载可以生成对webViewDidFinishLoad的十几个调用。

如果您控制页面源,那么您可以对其进行负载测试,并且对于该情况它将起作用。如果你只关心在“页面加载完成后”被调用,那么webViewDidFinishLoad就足够了。

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