vue h5跳转小程序

项目中需要从一个微信公众号得页面按钮跳转到另一个小程序首页。目前亲测有效有2种方案如下

方案一(此种方式最简单直接,不需要配置各种config参数,一个链接搞定):

1、在跳转方的小程序平台上配置一个URL Scheme,配置好要唤起的地址,根据官网提供的流程生成链接如下(appid就是要跳转小程序的Appid;path就是你配置好要跳转的URL Scheme):weixin://dl/business/appid=wx71234567777ffd45&path=pages/index/index&query=&env_version=release

官网参考链接:https://developers.weixin.qq.com/miniprogram/dev/framework/open-ability/url-scheme.html

2、上面配置好后在代码里写好点击事件直接location.href跳转即可。

方案二(使用wx-open-launch-weapp标签跳转):

前言,使用此标签跳转需要配置公众号的IP白名单,需要在当前h5代码存放的服务器上配置appsetting参数,需要在vue页面中请求接口获取wx.config的timestamp、nonceStr、signature;注意这里的参数获取最好通过接口返回,否则本地配置发送到正式环境测试时,会报错signature不合符要求。

1、服务器上的配置参数如下图圈出的部分(登录微信公众号找到对应的参数放进来):

2、vue页面初始化时获取到wx.config的参数。

  getShopWxConfig() {
      let urlParam = window.location.href;//.split("#")[0]
      this.$api.user.GetWXConfig(urlParam)
      .then( res => {
        let resData = JSON.stringify(res);//此处不需要反序列化,下面参数直接res.取值即可
        wx.config({
          debug: false, // 验证结果弹窗控制(成功或者失败)
          appId: "wxaff27***********", // 必填,微信公众号appid
          timestamp: res.timestamp, // 必填,生成签名的时间戳
          nonceStr: res.nonceStr, // 必填,生成签名的随机串
          signature: res.signature,// 必填,签名
          jsApiList: ["onMenuShareAppMessage"], // 必填,如果只是为了跳转小程序,随便填个值都行
          openTagList: ["wx-open-launch-weapp"] // 跳转小程序时必填
        });
        wx.ready(function() {
          //config信息验证后会执行ready方法,所有接口调用都必须在config接口获得结果之后,config是一个客户端的异步操作,所以如果需要在页面加载时就调用相关接口,则须把相关接口放在ready函数中调用来确保正确执行。对于用户触发时才调用的接口,则可以直接调用,不需要放在ready函数中
          // alert("ceshi"+resData);
        });
        wx.error(function(res) {
          // console.log('res',res);
          // config信息验证失败会执行error函数,如签名过期导致验证失败,具体错误信息可以打开config的debug模式查看,也可以在返回的res参数中查看,对于SPA可以在这里更新签名。
        });
      })
      .catch( err => {
        Toast(err);
      })
    },

3、使用wx-open-launch-weapp来跳转,标签内的样式自行定义即可,注意:标签内的样式动态的不能解析。

完成这几步就可以开心的跳转了。

还有一种方案,测试未能正常跳转,如有使用此种方案能跳转的,欢迎留言指教。

增加click事件,使用wx.miniProgram.navigateTo跳转。

//   wx.miniProgram.navigateTo({
    //     appId: 'wx42f1*******',//要跳转的小程序的AppID
    //     path: 'pages/home/***',//要跳转的页面路径
    //     extraData: {
    //       // 传递的参数
    //     },
    //     success(res) {
    //       // 成功回调
    //        let resD = JSON.stringify(res);
    //       alert(resD+'sucessbug')
    //       console.log(resD)
    //     },
    //     fail(res) {
    //       let resD = JSON.stringify(res);
    //       // 失败回调
    //       alert("failddd"+resD)
    //       alert(resD)
    //       console.log(resD)
    //     }
    //   });

  • 9
    点赞
  • 11
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值