您好,小程序模板欢迎您。
小程序模板
当前位置 : 首页> 小程序教程> 微信小程序内嵌H5页面中点击按钮如何跳转到其他小程序

微信小程序内嵌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);
   },
 });

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

联系客服 意见反馈

签到成功!

已连续签到1天,签到3天将获得积分VIP1天

知道了