WKWebView无法接受到JS调用原生方法的回调.
来源:互联网 发布:strcontains php 编辑:程序博客网 时间:2024/06/13 14:37
项目中,我们使用了UIWebView,Web端用MobileSelect.js,我们UIWebView始终无法弹出列表选择框,无奈之下,改用了WKWebView.
WKWebView性能真的是比UIWebView好,但是缺点呢,网上也有很多谈到的,也就不啰嗦了.
我在网上搜索WKWebView如何注入JS对象,在JS中调用原生的方法时,遇到点小问题,也是自己粗心吧.
在JS代码中,我们这样写
`window.webkit.messageHandlers.AppModel.postMessage(); 项目中,我们使用了UIWebView,Web端用MobileSelect.js,我们UIWebView始终无法弹出列表选择框,无奈之下,改用了WKWebView.
WKWebView性能真的是比UIWebView好,但是缺点呢,网上也有很多谈到的,也就不啰嗦了.
我在网上搜索WKWebView如何注入JS对象,在JS中调用原生的方法时,遇到点小问题,也是自己粗心吧.
在JS代码中,我们这样写
window.webkit.messageHandlers.AppModel.postMessage();
JS调用了这个方法,我们iOS却始终拿不到回调,很烦,根据网上的教程,看一点也没错啊,最后我通过调试JS代码,看到window这个对象里面的参数那里有好多报红,好像和参数有关,于是我让Web端同事,改为:
window.webkit.messageHandlers.AppModel.postMessage(null);
这样一来就可以接受到回调了,也许是我思想上先入为主了吧,认为不需要传参数,直接就不写了,其实不行.
WKWebView与JS交互上,网上的教程写的都很详细,不过有一点我不太满意的是,授人以鱼不如授人以渔,比如说:
这篇博客(http://blog.csdn.net/woaifen3344/article/details/49452227),写的很详细,但是: window.webkit.messageHandlers.AppModel.postMessage({body: ‘xxx’}) 为什么JS调用的是这个方法?这个方法作者是怎么知道的?很多博客上都没提到过,至少是在我所搜索到的博客上面,都没提及,原来是在WKUserContentController.h里面提到的.
我们不能要求别人告诉我们,但是我觉得如果把出处列出来,也许会对新手更友好…好了不说这些.
Peace out
- WKWebView无法接受到JS调用原生方法的回调.
- wkwebview 怎么调用js方法
- Swift WKWebView的js调用swift
- Swift WKWebView的swift调用js
- (八)React Native实现调用android原生java方法并实现广播的发送和接受
- ReactNative-JS调用原生方法
- 原生js调用json方法
- 原生js调用json方法
- js调用原生方法解决办法
- WKWebView下js的alert(),confirm(),prompt()方法无法正常执行
- Swift WKWebView的swift调用js ---- Swift WKWebView的js调用swift
- JS交互的方法(下)WKWebView
- JS与OC互相调用的一百种方法(包括WKWebView和UIWebView)
- 使用WKWebView注入js的详细用法及实时获取到WKWebWiew高度的方法
- ios js与oc原生WKWebView方法注入及交互传值
- WKWebView 与 JS 相互调用
- js调用android原生方法,简单明了。
- JS怎样调用Android本地原生方法
- 【结构型模式】《大话设计模式》——读后感 (14)分公司=一部门?——组合模式
- 【JTS】利用JTS生成R树索引
- 【行为型模式】《大话设计模式》——读后感 (15)烤羊肉串引来的思考?——命令模式
- input的type=file触发的相关事件
- Android进阶之数据库框架ormlite使用
- WKWebView无法接受到JS调用原生方法的回调.
- 【行为型模式】《大话设计模式》——读后感 (16)加薪非要老板批?——职责链模式
- 2017 Multi-University Training Contest
- 利用python代码求质数
- Java泛型通配符
- spring中获取bean的两种方式
- 深度学习的入门方法
- C++基础之数组
- CUDA 编程之 launch bounds