在使用uniapp开发的时候,uniapp是跨端解决方案,我的项目是开发成web页面,供App端使用,在其中需要和原生之间交换数据,出现了几个问题
- iOS WKWebView和js 交互的文档很多,但是写了以后,在js代码里面执行
window.webkit.messageHandlers.OnLineCollectionFun.postMessage({ messageId: '2444' });
总是提示webkit
underfine的,,我开始的时候,在iOS端增加了webkit.frame
这两个框架,运行以后,就不提示错误了,但是我再次去掉这个框架以后,也不报错了,不知道是什么原因, 我建议是可以卸载重装App,清除一些缓存,在调试的过程中,总是发现代码更新不及时,第一次reload没效果,多试几次以后就可以了。
WKWebView和js 交互
此外还可以用这个库,实现交互的功能
WebViewJavascriptBridge - 上面说的是js,但是uniapp怎么和iOS通信呢,因为uniapp就是用Vue开发的,所以我参考了Vue的实现方法
在App.vue
文件里面
<script>
export default {
onLaunch: function() {
console.log('App Launch')
try {
uni.setStorageSync('storage_key', 'hello');
} catch (e) {
// error
}
// uni.setStorageSync('testMessageKey',window.webkit)
window.webkit.messageHandlers.OnLineCollectionFun.postMessage({ messageId: '2444' });
},
methods:{
addList:function(message) {
// consule.log(message);
uni.setStorageSync('testMessageKey',message)
},
},
mounted(){
window.addList = this.addList;
},
onShow: function() {
console.log('App Show')
},
onHide: function() {
console.log('App Hide')
}
}
</script>