使用plus.webview.create创建的webview锁嵌套的html页面如何与app进行通信

首先,在html页面中引用官方的SDK

1
<script src="../js/uni.webview.1.5.2.js"></script>

紧接着,监听UniAppJSBridgeReady,等待sdk加载成功,然后使用 uni的 api,一些api可以直接使用,一些需要 uni.webVuew.api 调用

1
2
3
4
5
6
7
8
9
10
11
12
<script>
document.addEventListener('UniAppJSBridgeReady', function() {

uni.navigateTo({
url: '/pages/test/test'
});

uni.getEnv(function(res) {
console.log('当前环境:' + JSON.stringify(res));
});
});
</script>

最后 在app的页面中plus的globalEvent监听

1
2
3
4
5
6
7
8
9
plus.globalEvent.addEventListener('plusMessage', function(msg) {
// 通过查看 msg 可以看到 api 传递的参数
// name 为 webview的html页面中uni。调用的api,
// 比如 uni.navigateTo, 那么此处的 name 是 navigateTo,
// 比如 uni.postMessage, 那么此处的 name 是 postMessage,
const name = msg.data.args.data.name;
// 此处 url 为 html中 uni 调用 api 时的 url
const url = msg.data.args.data.arg.url;
});