web-view嵌H5调用wx.miniprogram.navigateTo报错!?
开发过程中发现,在android终端(ios终端小程序中没有这个问题)小程序中web-view加载H5页面后出现一句话:“window.WeixinJSBridge already exists”!随后在通过点击事件调用小程序wx.miniprogram.navigateTo API时出现报错:errMsg: "invokeMiniProgramAPI:permission denied"!无法跳转小程序!
终端机型:OPPO R15(型号:PACM00)
微信版本:7.0.19
代码片段:
//触发跳转事件
this.navigateTo(nextPage);
//----------------------------------------------------------跳转具体方法-----------------------------------------------------------------//
navigateTo(url) {
//控制页面跳转---小程序、公众号、非微信跳转方式 【modelName---vue路由名字】
this.isMiniProgram((res) => {
//判断是否是小程序页面的回调函数
if (res) {
//小程序页面
this.$wx.miniProgram.navigateTo({
url: url,
success: function(e){
console.log('web-view页面跳转小程序success',e)
},
fail: function(e){
console.log('web-view页面跳转小程序fail',e);
},
complete:function(e){
console.log('web-view页面跳转小程序complete',e);
}
});
}
});
},
isMiniProgram(callback) {
// 判断是否在微信环境。
var ua = window.navigator.userAgent.toLowerCase();
if (ua.match(/MicroMessenger/i) != "micromessenger") {
console.log('--------->> 非微信环境!');
callback(false);
} else {
//微信API获取当前运行环境
this.$wx.miniProgram.getEnv((res) => {
console.log(res, "res");
if (res.miniprogram) {
console.log('--------->> 小程序环境!');
//小程序环境
callback(true);
} else {
callback(false);
}
});
}
}
},
报错图片: