WebView代理方法

WebView代理方法_第1张图片
web

控制网页是否进行加载

- (BOOL)webView:(UIWebView *)webView shouldStartLoadWithRequest:(NSURLRequest *)request navigationType:(UIWebViewNavigationType)navigationType{
     return YES;
}

网页已经开始加载

webViewDidStartLoad

网页加载完毕:所有交互都写在这里

webViewDidFinishLoad

注意

webViewDidFinishLoad方法执行多次的原因:如果网页内有异步请求或者重定向时,就会多次调用上述方法
解决方法:

 if (webView.isLoading) {
         return     ;
 }

补充:js交互

    NSString *str4 = @"var elementImg = document.createElement('img');";
    NSString *str5 = @"elementImg.style.width = '200px';";
    NSString *str6 = @"elementImg.style.height = '200px';";
    NSString *str7 = @"elementImg.src = 'http://img4.imgtn.bdimg.com/it/u=3785580735,1187443961&fm=21&gp=0.jpg';";

    NSString *str8 = @"document.body.appendChild(elementImg)";
    [webView stringByEvaluatingJavaScriptFromString:str4];
    [webView stringByEvaluatingJavaScriptFromString:str5];
    [webView stringByEvaluatingJavaScriptFromString:str6];
    [webView stringByEvaluatingJavaScriptFromString:str7];
    [webView stringByEvaluatingJavaScriptFromString:str8];

加载失败

- (void)webView:(UIWebView *)webView didFailLoadWithError:(nullable NSError *)error
{
     网页加载失败情况在这里处理
}

你可能感兴趣的:(WebView代理方法)