当前位置:   article > 正文

vue h5跳转小程序

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的参数。

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

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

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

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

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

  1. // wx.miniProgram.navigateTo({
  2. // appId: 'wx42f1*******',//要跳转的小程序的AppID
  3. // path: 'pages/home/***',//要跳转的页面路径
  4. // extraData: {
  5. // // 传递的参数
  6. // },
  7. // success(res) {
  8. // // 成功回调
  9. // let resD = JSON.stringify(res);
  10. // alert(resD+'sucessbug')
  11. // console.log(resD)
  12. // },
  13. // fail(res) {
  14. // let resD = JSON.stringify(res);
  15. // // 失败回调
  16. // alert("failddd"+resD)
  17. // alert(resD)
  18. // console.log(resD)
  19. // }
  20. // });

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/小小林熬夜学编程/article/detail/268035
推荐阅读
相关标签
  

闽ICP备14008679号