在小程序处理
<web-view bindmessage="handleGetMessage" src="{{outSrc}}"></web-view>
js 方法:
handleGetMessage: function(e) { // 获取webView 修改后传递的信息。判断调用用户信息接口
console.log('修改了用户信息', e.detail.data)
if(e.detail.data && e.detail.data[0] && e.detail.data[0].typemin === '1'){
app.globalData.userInfo = null; // 用户信息赋值空
app.getUserInfoFn(); // 重新登录获取用户信息。
}
},
H5页面
H5页面的传值 返回必须要销毁当前页面的方法才能触发
bindmessage eventhandler 网页向小程序 postMessage 时,会在特定时机(小程序后退、组件销毁、分享)触发并收到消息。e.detail = { data },data是多次 postMessage 的参数组成的数组
wx.miniProgram 方法需要引入微信SDK,自行引入。
let ua = navigator.userAgent.toLowerCase(); // 车险小程序有引用当前项目
if(ua.match(/MicroMessenger/i)=="micromessenger") {
//ios的ua中无miniProgram,但都有MicroMessenger(表示是微信浏览器)
// alert(wx.miniProgram.navigateTo)
// console.log('wx2',wx.miniProgram.navigateTo)
wx.miniProgram.getEnv((res)=>{
if (res.miniprogram) { // 小程序环境下
this.isMiniProgram = true;
}
})
}
传值 。data 是固定的
if(this.isMiniProgram){ // 小程环境下,传值给小程序.重新请求数据
wx.miniProgram.postMessage({ data: {typemin:'1'}})
}
返回到小程序
if (res.miniprogram) { // 小程序环境下
wx.miniProgram.redirectTo({url: '/pages/page/index/index'})
// wx.miniProgram.switchTab({url: '/pages/page/index/index'})
}