wx.miniapp.launchMiniProgram

App 拉起微信小程序

接入前注意事项

参数

对齐微信 opensdk 跳转小程序open in new window参数,方便理解

属性类型默认值必填说明
userNamestring小程序原始ID,如 gh_d43f693ca31f,点击查看获取方式open in new window
pathstring默认拉起小程序首页拉起小程序页面的可带参路径,如:传入 "?foo=bar"。
miniprogramTypenumber默认为正式版可选打开 0-正式版,1-开发版,2-体验版
successfunction获取后成功回调

JSAPI 代码例子

// login
 wx.miniapp.launchMiniProgram({
            userName: 'gh_d43f693ca31f', //小程序原始ID
            path: 'originfiles/pages/miniapp/miniapp?action=login',
            miniprogramType: 2, //0 release ,1 test, 2 preview
            success: (res) => {
                wx.showModal({
                    content: res.data,
                })
                console.log('get wx phonenumber success:', res)
            }
        })

微信小程序返回 App

开发者可以使用button标签open in new window跳转回App。

注意:安卓的情况下, 当 SDK 1.2.17 版本以下的情况下,开发者需要在app-parameter携带App的信息才能正常返回多端App,细节如下。iOS不需要。

多端App在唤起微信小程序的时候,会携带App相关的信息,开发者可以在页面的onLoad函数的参数中获取到。

获取的信息需要在button标签的app-parameter中给回App。同时可以带上开发者自己希望返回的信息。

安卓 App 如果未做上述操作,可能会出现报错:sendOpenReq failed:fail opensdk failed 并没有通过微信返回多端App。


onLoad(res) {  
    // Page对应onLoad函数中获取App带过来的信息
    transitiveData = res;

    // App带过来的信息需要将transitiveData作为key,同时可以在data带上开发者自己的数据。
    const data = {
        data: "MsgBackToApp",
        transitiveData
    };

    // 将需要的信息设置到data中,让button标签可以获取到
    this.setData({
        dataStr: JSON.stringify(data)
    });
}

<button open-type="launchApp" app-parameter="{{dataStr}}" bindtap="tap">
返回App
</button>

常见问题

1. 跳小程序了,但是返回不了 App

  • 出现这种情况原因是该多端应用所绑定的移动应用账号尚未配置好 iOS 的 Bundle Id 信息或者 Android 的包名
  • 举个例子,开发者创建移动应用账号的时候只配置了 iOS 的 Bundle Id 信息并且将该移动应用绑定了多端应用,使得 iOS 端跳小程序功能正常;但是该移动应用的 Android 的包名还没有配置,于是就会出现了 Android 端跳到了小程序,但是无法返回 App
  • 因此,开发者需按照移动应用创建指南文档open in new window将移动应用的 iOS 的 Bundle Id 信息和 Android 的包名都配置好