0

UIWebView在一个项目中使用。有时它不调用该webViewDidFinishLoad方法。因为网页有一些javascripts。方法

- (BOOL) webView: (UIWebView *) webView shouldStartLoadWithRequest: (NSURLRequest *) request navigationType: (UIWebViewNavigationType) navigationType

正在接到电话,但webViewDidFinishLoad没有。我想抓住那个方法。因为我在 webview 开始加载时开始动画。然后我想在它完成时停止这个动画。它不适用于具有 javascript 内容的网站。有人有想法吗?

谢谢

4

2 回答 2

0

webViewDidFinishLoad方法在UIWebView完成加载 url 时被调用,在你的情况下,因为你正在调用 a 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;


}
于 2013-04-29T08:45:40.390 回答
0

显然,ios 中的 webview 专门检查 html 的 dom 中的“iframe”标签,如果找到,它也会基于该标签创建事件。因此,一个简单但不完整的解决方案是在正在更改的 dom 部分中添加以下代码(例如,在每个部分的实际模板中):

<iframe></iframe>

为我做了伎俩..

于 2015-08-05T10:53:12.843 回答