Erlo

iOS:WKWebView(19-01-25更)

2019-01-25 23:02:45 发布   703 浏览  
页面报错/反馈
收藏 点赞

以前用得不多,先开一篇,以后有遇到再补充。

 

1、JS 调用 OC

1-1)、添加 和 JS 约定的消息名

[self.userContentController addScriptMessageHandler:self  name:@"约定的消息名"];

 1-2)、得到 JS 消息

#pragma mark - WKScriptMessageHandler
- (void)userContentController:(WKUserContentController *)userContentController didReceiveScriptMessage:(WKScriptMessage *)message
{
    if ([message.name isEqualToString:@"约定的消息名"]) {
        NSLog(@"当前的消息为:%@", message.body[@"约定的key"]);
    }
}

 1-3)、移除

- (void)viewWillDisappear:(BOOL)animated{
    [super viewWillDisappear:animated];
    
    [self.userContentController removeScriptMessageHandlerForName:@"约定的消息名"];
}

补充:这步最为重要,如果不移除,将得不到释放,比如H5的音乐在退出该VC(dealloc) 还会一直响。

 

附:JS代码

function isAndroid(argument) {
    var u = navigator.userAgent;
    var flag = u.indexOf('Android') > -1 || u.indexOf('Adr') > -1; //android终端
    return flag;
}

function isIOS(argument) {
    var u = navigator.userAgent;
    var flag = !!u.match(/(i[^;]+;( U;)? CPU.+Mac OS X/); //ios终端
    return flag;
}
                         
function share(要传的value) {
    if(isAndroid()){

    } else if(isIOS()) {
        window.webkit.messageHandlers.约定的消息名.postMessage({
                                                        "要传的key": 要传的value
                                                        });
    }
}

 

登录查看全部

参与评论

评论留言

还没有评论留言,赶紧来抢楼吧~~

手机查看

返回顶部

给这篇文章打个标签吧~

棒极了 糟糕透顶 好文章 PHP JAVA JS 小程序 Python SEO MySql 确认