UIWebView UIWKWebView的使用心得

来源:互联网 发布:linux 美国纽约时区 编辑:程序博客网 时间:2024/05/29 13:38


UIWebView

IOS7  使用的是UIWebView 在代理方法中

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

作用就是准备加载内容时调用的方法,通过返回值来进行是否加载的设置,

这里返回值是一个Bool类型。

如果为webView添加了delegate对象并实现该接口,那么在webView加载任何一个frame之前都会delegate对象的该方法,该方法的返回值用以控制是否允许加载目标链接页面的内容,返回YES将直接加载内容,NO则反之。并且UIWebViewNavigationType枚举,定义了页面中用户行为的分类,包括

  • UIWebViewNavigationTypeLinkClicked,用户触击了一个链接。
  • UIWebViewNavigationTypeFormSubmitted,用户提交了一个表单。
  • UIWebViewNavigationTypeBackForward,用户触击前进或返回按钮。
  • UIWebViewNavigationTypeReload,用户触击重新加载的按钮。
  • UIWebViewNavigationTypeFormResubmitted,用户重复提交表单
  • UIWebViewNavigationTypeOther,发生其它行为。
比如网页其实是调起拨号功能,他的URL传入的是一个电话号码

需求是点击拨号,不需要跳转,这里就要进行处理,返回NO(不直接加载内容


UIWKWebView


ios以后使用此控件,在代理方法进行了区别。

代理方法类似shouldStartLoadWithRequest

- (void)webView:(WKWebView *)webView decidePolicyForNavigationAction:(WKNavigationAction *)navigationAction decisionHandler:(void (^)(WKNavigationActionPolicy))decisionHandler;

这里的

        decisionHandler(WKNavigationActionPolicyAllow);

        decisionHandler(WKNavigationActionPolicyCancel);

类似  

shouldStartLoadWithRequest 的 

return YES   return NO 

默认是需要decisionHandler(WKNavigationActionPolicyAllow);







0 0