美文网首页iOS收藏『ios』进阶
针对wkwebview不支持 window.open() js

针对wkwebview不支持 window.open() js

作者: butterflyer | 来源:发表于2018-08-07 15:44 被阅读4次

    今天,搞的网站在别人的app上打开,发现所有的新打开页面全部失效,但是安卓的可以,于是自己搞了个demo试了下,在wkwebview上真的打不开。
    于是搜了下原因,因为苹果的安全机制,所以wkwebview给禁掉了。

    解决办法

    遵循wkwebview代理,_webview.UIDelegate = self;

    - (nullable WKWebView *)webView:(WKWebView *)webView createWebViewWithConfiguration:(WKWebViewConfiguration *)configuration forNavigationAction:(WKNavigationAction *)navigationAction windowFeatures:(WKWindowFeatures *)windowFeatures{
        
        if (navigationAction.request.URL) {
            
            NSURL *url = navigationAction.request.URL;
            NSString *urlPath = url.absoluteString;
            NSLog(@"%ld",[urlPath rangeOfString:@"http://"].location);
            if ([urlPath rangeOfString:@"https://"].location != NSNotFound || [urlPath rangeOfString:@"http://"].location != NSNotFound) {
                
    //            [[UIApplication sharedApplication] openURL:url];
                [[UIApplication sharedApplication] openURL:url options:nil completionHandler:^(BOOL success) {
                    NSLog(@"success");
                }];
            }
        }
        
        return nil;
        
    }
    

    然后由于是客户集成我们的h5,所以最后还是我们这边处理,通过判断是否为移动端打开,
    来选择打开方式。

     export function isWebView(){
        var ua = navigator.userAgent;
        var webview = !!ua.match(/AppleWebKit.*Mobile.*/)
        return webview;
      }
    

    相关文章

      网友评论

        本文标题:针对wkwebview不支持 window.open() js

        本文链接:https://www.haomeiwen.com/subject/ttlavftx.html