【uniapp】APP内嵌webview消息传递
本文章是记录用来处理app和web页面的消息互相传递
uniapp代码(.vue页面)
<template> <!--vue-webview验证-->
<view>
<button @tap="sendMsgToWebview()">按钮1</button>
<web-view style="width:0; height:0;" src="http://写你自己的网页地址" @message="onMessage" ref="webview"></web-view>
</view>
</template>
<script>
export default {
data() {
return {
}
},
onLoad() {
},
methods: {
onMessage(arg) {
console.log('------app收到-----',arg)
},
sendMsgToWebview() {
const
_funName = 'msgFromUniapp',
_data = 4444;
const currentWebview = this.$scope.$getAppWebview().children()[0];
currentWebview.evalJS(`${_funName}(${JSON.stringify(_data)})`);
},
}
}
</script>
<style>
</style>
web (未使用uni)
<!DOCTYPE html>
<html lang="zh-CN">
<head>
<meta charset="utf-8">
<meta http-equiv="X-UA-Compatible" content="IE=edge">
<script type="text/javascript" src="./js/uni.webview.js"></script>//这个文件的下载地址我放下面
</head>
<body>
<script>
// 等待sdk加载
document.addEventListener('UniAppJSBridgeReady', function() {
// 向应用发送消息
uni.postMessage({
data: {
order: 'playRecord'
}
});
});
window.msgFromUniapp = function(arg) { //消息接收
console.log('-----web接收-----',JSON.stringify(arg));
if(JSON.stringify(arg) == 4444){ //模拟接收信息后立刻回复一条
console.log('dawiluydgawkljdgwakjdgaw')
uni.postMessage({
data: {
order: '回复回复回复'
}
});
}
}
</script>
</body>
</html>
uni.webview.js 下载地址 没了就去uni官网下