如何在UIWebView shouldStartLoadingWithRequest方法调用完成后调用函数?

时间:2013-03-19 09:15:27

标签: ios uiwebview delegates uiwebviewdelegate

如何在iOS中执行UIWebView shouldStartLoadingWithRequest方法后调用函数?

我不想使用performselector:afterdelay因为在网络较低时可能无法提供准确的结果。

3 个答案:

答案 0 :(得分:1)

使用这些方法可能会对你有帮助,

- (BOOL)webView:(UIWebView *)webView shouldStartLoadWithRequest:(NSURLRequest *)request navigationType:(UIWebViewNavigationType)navigationType {
       return YES;
    }


    - (void)webViewDidFinishLoad:(UIWebView *)webView {
      //this method will call after successful loading
    }


    - (void)webView:(UIWebView *)webView didFailLoadWithError:(NSError *)error {
      //this method will call after getting any error while loading the web view.
    }

答案 1 :(得分:1)

使用webViewDidFinishLoad:在Web视图完成加载后调用此方法。

- (void)webViewDidFinishLoad:(UIWebView *)webView

<强>参数

  • <强> webView的
    Web视图已完成加载。

  • <强>状况
    可在iOS 2.0及更高版本中使用。

答案 2 :(得分:0)

UIWebViewDelegate Protocol提供了一些可以在您的情况下使用的方法。

shouldStartLoadWithRequest之后调用的第一个方法是webViewDidStartLoad:,就像它的名字所暗示的那样,在WebView开始加载一个框架后调用。 从你的问题来看,这似乎是最合适的方法。

以前的答案中提供的其他选项是webViewDidFinishLoad:webView:didFailLoadWithError:,每次UIWebView完成加载帧以及无法加载帧时都会调用它们。

请注意,这意味着在UIWebView实际完成加载之前,上述所有方法可能会被多次调用,因为只要UIWebView即将开始,它们就会被抛出,刚刚开始,已完成或未能在页面上加载每个框架。

有关更多详细信息,请参阅UIWebViewDelegate Protocol documentation