【问题标题】:How to call a function after UIWebView shouldStartLoadingWithRequest method call is finished?UIWebView shouldStartLoadingWithRequest 方法调用完成后如何调用函数?
【发布时间】:2013-03-19 09:15:26
【问题描述】:

iOS中UIWebViewshouldStartLoadingWithRequest方法执行完成后如何调用函数?

我不想使用performselector:afterdelay,因为在网络不足的情况下,这可能无法给出准确的结果。

【问题讨论】:

  • 然后使用 webview 委托方法
  • 使用委托方法webviewDidFinished

标签: ios uiwebview delegates uiwebviewdelegate


【解决方案1】:

使用webViewDidFinishLoad:这个方法是在网页视图加载完成后调用的。

- (void)webViewDidFinishLoad:(UIWebView *)webView

参数

  • 网络视图
    Web 视图已完成加载。

  • 可用性
    iOS 2.0 及更高版本中可用。

【讨论】:

    【解决方案2】:

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

    - (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.
        }
    

    【讨论】:

      【解决方案3】:

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

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

      在之前的答案中提供的其他选项是webViewDidFinishLoad:webView:didFailLoadWithError:,每次UIWebView 完成加载框架以及加载框架失败时分别调用它们。

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

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

      【讨论】:

        猜你喜欢
        • 2017-08-16
        • 1970-01-01
        • 2019-02-05
        • 1970-01-01
        • 2017-01-10
        • 1970-01-01
        • 1970-01-01
        • 2019-09-26
        • 2018-12-28
        相关资源
        最近更新 更多