我在项目中使用UIWebView
。有时它不会调用webViewDidFinishLoad
方法。因为网页有一些javascripts。方法
- (BOOL) webView: (UIWebView *) webView shouldStartLoadWithRequest: (NSURLRequest *) request navigationType: (UIWebViewNavigationType) navigationType
正在接听电话,但webViewDidFinishLoad
没有。我想抓住那个方法。因为我在webview开始加载时启动动画。然后我想在完成后停止这个动画。它不适用于具有javascript内容的网站。有人有想法吗?
由于
答案 0 :(得分:0)
webViewDidFinishLoad
完成加载网址时会调用 UIWebView
方法,因为您调用的是javascript
,因此它不会加载您的内容,只会调用您已加载的javascript
中的webview
功能。但YES
您可以按照下面所述的相同方法捕获javascript操作
- (BOOL)webView:(UIWebView *)webView shouldStartLoadWithRequest:(NSURLRequest *)request navigationType:(UIWebViewNavigationType)navigationType{
NSString *url = [[request URL] absoluteString];
if(navigationType == UIWebViewNavigationTypeLinkClicked){
if([url rangeOfString:@"SOMETHING"].length > 0 ){
//if your action returns something appended in your url like the anchors work
//DO YOUR STUFFS
}
}
return TRUE;
}
答案 1 :(得分:0)
显然,ios中的webview专门检查html dom中的“iframe”标签,如果找到,它也会根据该标签创建事件。因此,一个简单但不完整的解决方案是在正在改变的dom部分添加以下代码(例如,在每个部分的实际模板中):
<iframe></iframe>
为我做了诀窍......