1、个人项目无法使用,不过在开发这工具设置【不校验web-view】还是可以用的
★坑点:postMessage不能直接输出到小程序,官方已经表明这个坑,也就是说,需要navigateTo,navigateBack,redirectTo这些使页面销毁或分享事件才能出发这些data传输
2、测试基本流程(相对简单)
测试的第一页代码wxml
<!-- 测试的第一页代码wxml -->
<navigator url='/pages/custom/index'>我要去</navigator>
测试主代码:/pages/custom/index
<!-- 测试主代码:/pages/custom/index -->
<web-view
src="http://localhost/web.html"
bindmessage="handleMsg">
</web-view>
// 小程序page
Page({
handleMsg (e) {
console.log(e)
},
}
外链html:http://localhost/web.html代码
<!-- 外链html:http://localhost/web.html代码 -->
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<meta http-equiv="X-UA-Compatible" content="ie=edge">
<!-- weixin js sdk -->
<script type="text/javascript" src="https://res.wx.qq.com/open/js/jweixin-1.3.2.js"></script>
<title>Document</title>
</head>
<body>
<button onclick="sendMsg()">先发送消息</button>
<button onclick="back()">回退触发事件</button>
<!-- 小程序输出 -->
<h1>网页js输出</h1>
<div id="result"></div>
<script>
function sendMsg () {
write('发送消息')
wx.miniProgram.postMessage({ data: {foo: 'bar'} })
}
function back () {
write('回退')
wx.miniProgram.navigateBack({delta: 1})
}
function write (note) {
var res = (note instanceof String) ? note : JSON.stringify(note)
document.getElementById('result').innerHTML += JSON.stringify(res) + '<br><br>'
}
//小程序发送信息```
wx.miniProgram.getEnv(function (res) {
write(res)
});
</script>
</body>
</html>
我们为了测试,需要将webview放在第二页,也就是第一页先连接过去
如图:
1.
2.
3.输出的data存在是多个,因为你点了很多次,最后注销页面的时候才触发?
补充
小程序->webview传参 暂时只能通过webview的src传入get参数
webview->小程序传参 只能通过postMessage而且还不同步
总结
不是必要,或者去除已开发h5项目且甲方急切需要上小程序的话,建议不要使用webview,如果上传表单,基本要日狗