从 UIWebView 委托方法中排除外部 javascript 内容
Posted
技术标签:
【中文标题】从 UIWebView 委托方法中排除外部 javascript 内容【英文标题】:Exclude external javascript content from UIWebView delegate methods 【发布时间】:2012-03-01 18:34:58 【问题描述】:我有一个带有委托方法的 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】:尝试在 webViewDidFinishLoad 处将委托设置为 nil。由于加载的网站中的 AJAX 调用,可能会多次调用委托。所以,请使用[webView setDelegate:nil]
。
希望对你有帮助。
【讨论】:
谢谢。但是当他们点击一个链接转到另一个页面时会发生什么,不再有活动指示器。以上是关于从 UIWebView 委托方法中排除外部 javascript 内容的主要内容,如果未能解决你的问题,请参考以下文章
从 UIWebView 委托呈现 ViewController
在 UIWebView 中打开一些项目,在外部浏览器中打开其他项目
UIWebView 中的 UIScrollView 的委托方法未调用水平滚动
UIwebView shouldStartLoadWithRequest 委托调用后需要点击手势方法
为啥 UIWebView 不在我的应用程序委托中的 applicationWillTerminate: 处加载 NSURLRequest?