iOS开发笔记--WKWebView适配网页的坑

版权声明:本文为博主原创文章,未经博主同意不得转载。 https://blog.csdn.net/iDivines/article/details/82858078

1、不支持<a href=“tel:xxx”>打电话

fixed:拦截网页请求,用原生代码唤起电话应用

- (void)webView:(WKWebView *)webView decidePolicyForNavigationAction:(WKNavigationAction *)navigationAction decisionHandler:(void (^)(WKNavigationActionPolicy))decisionHandler {    
      NSURL *URL = navigationAction.request.URL;
      NSString *scheme = [URL scheme];   
      if ([scheme isEqualToString:@"tel"]) {        
          NSString *resourceSpecifier = [URL resourceSpecifier];        
          NSString *callPhone = [NSString stringWithFormat:@"telprompt://%@", resourceSpecifier];        
          //防止iOS 10及其之后,拨打电话系统弹出框延迟出现       
          dispatch_async(dispatch_get_global_queue(0, 0), ^{          
               [[UIApplication sharedApplication] openURL:[NSURL URLWithString:callPhone]];      
          });    
      }    
      decisionHandler(WKNavigationActionPolicyAllow);
}

2、双击网页的底部空白处,网页向上滚动

fixed:使用js代码屏蔽双击向上滚动

var agent = navigator.userAgent.toLowerCase();
var iLastTouch = null;
if (agent.indexOf("iphone") >= 0 || agent.indexOf("ipad") >= 0) {
    document.body.addEventListener("touchend", function (event) {
        var a = new Date().getTime();
        iLastTouch = iLastTouch || a + 1;
        var c = a - iLastTouch;
        if (c < 500 && c > 0) {
            event.preventDefault();
            return false;
        }
        iLastTouch = a
    }, false);
};

3、input 设置 readonly 光标仍显示

fixed:增加属性 unselectable=“on” onfocus=“this.blur()”

4、input 设置type=search 系统键盘显示换行换行按钮

fixed:form标签中增加属性 role=“search”,同时必须配置action属性

<form role="search" action="test">
   <input type="search" value="test">
</form>

猜你喜欢

转载自blog.csdn.net/iDivines/article/details/82858078