web-view嵌H5调用wx.miniprogram.navigateTo报错!?
发布于 5 年前 作者 yancai 12436 次浏览 来自 问答

开发过程中发现,在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);
          }
        });
      }
    }
  },

报错图片:

1 回复

引用的jssdk是什么版本呢? 换个版本试试看?

回到顶部