微信小程序内嵌H5页面中点击按钮如何跳转到其他小程序

业务需求

微信小程序中内内嵌的H5界面,需要通过点击按钮来实现跳转到其他小程序。想通过web-view来实现直接跳转,结果失败了(难道就实现不了了吗?)。
查阅了微信官方的文档,也没有给出具体解决方法,只有小程序跳转其他小程序的相关api,于是突发奇想,能否让嵌入的H5界面跳转到当前小程序页面,然后不就是小程序跳转小程序了吗,感觉可行,就尝试了一波。

解决方案

小程序中内嵌的H5页面通过点击之后需要跳转至目标小程序,首先需要跳转到内嵌的小程序界面,然后使用微信apiwx.navigateToMiniProgram()’实现跳转目标小程序,达到用户可以从内嵌的H5页面中跳转到目标小程序的目的。

实现方法

1.在H5页面中处理好需要传递的参数

// pages/wx/wx 当前小程序页面
let url = `/pages/wx/wx?appid=${appid}&path=${encodeURIComponent(path)}`

2.调用wx.miniProgram.navigateTo()方法跳转至当前嵌入的小程序界面,携带跳转小程序所需的参数,这里以appidpath为例,path中因为还有其他参数,所以这里使用JavaScript的encodeURIComponent()进行转码处理。

 wx.miniProgram.navigateTo({url: url});

3.在小程序界面中接收参数,path需要使用decodeURIComponent()方法解码,然后在调用 wx.navigateToMiniProgram()方法来跳转目标小程序。
需要注意的是wx.navigateToMiniProgram()方法需要用户手动触发,为此我在调用之前添加了一层wx.showModal()方法。

wx.showModal({
   title: "温馨提示",
   content: "xxx提示内容",
   cancelText: "取消", //默认是“取消”
   cancelColor: "#000000", //取消文字的颜色
   confirmText: "确定", //默认是“确定”
   confirmColor: "#0378D8", //确定文字的颜色
   success: function (res) {
     if (res.cancel) {
       //用户点击取消
       wx.navigateBack();
     } else {
       // 打开目标小程序
       wx.navigateToMiniProgram({
         appId: that.appid,
         path: that.path,
         success(res) { 
           // 打开成功
           console.log(res);
         },
         fail() {
           wx.navigateBack();
         },
       });
     }
   },
   fail: function (res) {
     wx.navigateBack();
   },
   complete: function (res) {
     console.log(res);
   },
 });

踩坑不易,点赞支持一下呗!

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值