从UIWebView委托方法中排除外部JavaScript内容

时间:2012-03-01 18:34:58

标签: uiwebview uiwebviewdelegate

我有一个带有委托方法的UIWebview

webViewDidStartLoad webViewDidFinishLoad

然而,在页面上我正在加载一个facebook聊天组件,无论出于何种原因都无法正确加载(缓存问题?fb的问题?)并且它一遍又一遍地击中服务器导致我的两个委托方法被调用一遍又一遍(他们唯一使用的是显示和隐藏活动指示器,因此我留下了一个闪烁的活动指示器)

当页面加载但仍在“尝试”加载我无法控制的外部内容时,是否仍然停止调用这些方法?

  - (void)webViewDidStartLoad:(UIWebView *)webView {

    NSLog(@" I am in Webview did start");    

    if ( webView == self.myFlickView )
    {
       [UIApplication sharedApplication].networkActivityIndicatorVisible = YES;

    }     


}

- (void)webViewDidFinishLoad:(UIWebView *)webView {

    NSLog(@" I am in Webview did end");    

    if ( webView == self.myFlickView )
    {
       [UIApplication sharedApplication].networkActivityIndicatorVisible = NO;

    }     


}

1 个答案:

答案 0 :(得分:0)

尝试在webViewDidFinishLoad中将委托设置为nil。由于加载网站中的AJAX调用,代理可能被多次调用。因此,请使用[webView setDelegate:nil]

希望它有所帮助。