一:前言

       微信小程序打开另一个小程序,有两种方法:1.超链接--wx.navigateToMiniProgram();2.点击按钮。


二、超链接/微信自带调转

        微信小程序能正常跳转到另一个小程序的前提是:这两个小程序被同一个微信公众号关联,否则无法跳转。代码如下:

wx.navigateToMiniProgram({
   appId: 'wxdbcxxxxx985f',   //  要打开的小程序 appId
   path: 'pages/index/index?goods_id=201',    //打开的页面路径,如果为空则打开首页
   extraData: {
     from: 'xxxxx'    //需要传递给目标小程序的数据,目标小程序可在 App.onLaunch,App.onShow 中获取到这份数据
   },
   envVersion: 'develop',    //要打开的小程序版本。仅在当前小程序为开发版或体验版时此参数有效。如果当前小程序是正式版,则打开的小程序必定是正式版。
   success(res) {
     // 打开其他小程序成功同步触发
     wx.showToast({
        title: '跳转成功'
     })
   }
})

相关参数:

属性

类型

默认值

是否必填

说明

appId

string

 


要打开的小程序 appId

path

string

 


打开的页面路径,如果为空则打开首页

extraData

object

 


需要传递给目标小程序的数据,目标小程序可在 App.onLaunchApp.onShow 中获取到这份数据。

envVersion

string

release


要打开的小程序版本。仅在当前小程序为开发版或体验版时此参数有效。如果当前小程序是正式版,则打开的小程序必定是正式版。

success

function

 


接口调用成功的回调函数

fail

function

 


接口调用失败的回调函数

complete

function

 


接口调用结束的回调函数(调用成功、失败都会执行)

目标小程序接收来源小程序传递过来的参数:

App({
  onLaunch: function (options) {
    console.log("referrerInfo:::", options.referrerInfo)
  }
    ...
})

输出:

    {"appId":"wxcc41e47562b08129","extraData":{"from":"xxxxx"}}

开发者工具调试被打开的小程序时候正确的接收参数:

        开发者工具新建编译模式:

输出:

Android 唤起微信小程序 微信小程序唤起其他app_App


注意:

1. 先选择进入场景,输入1037就能快速定位到从小程序进入这个选项,然后就会显示设置appid及extraData的输入框;

2. 尤其要注意extraData的格式,与来源小程序中传递过来的格式都有点不一样,请严格参照下边的代码:

注意事项:

1. navigateToMiniProgram Api需要用户主动触发跳转,且在跳转至其他小程序前,将统一增加弹窗,询问是否跳转,用户确认后才可以跳转其他小程序。如果用户点击取消,则回调 fail cancel;

2. 每个小程序可跳转的其他小程序数量限制为不超过 10 个;

3. 在开发者工具上调用此 API 并不会真实的跳转到另外的小程序,但是开发者工具会校验本次调用跳转是否成功。

4. 开发者工具上支持被跳转的小程序处理接收参数的调试

 


三、全局配置:

     3.1、跳转到其他小程序,需要在当前小程序全局配置中配置需要跳转的小程序列表,代码如下:

          App.json   ---   最多能配置10个

{
  ...
  "navigateToMiniProgramAppIdList": [
    "wxe5f52902cf4de896"
  ]
}

         否则会弹出以下错误提示:

   

Android 唤起微信小程序 微信小程序唤起其他app_小程序跳转_02


四、使用方法

      使用wx.navigateToMiniProgram ()打开 。

      如果你打开之后想返回之前的小程序 使用 wx.navigateBackMiniProgram()返回之前小程序

  注意:返回到上一个小程序。只有在当前小程序是被其他小程序打开时可以调用成功