swan.navigateToSmartProgram

基础库 1.10.8 版本开始支持。在工具和真机中的实现有区别,详见API 实现差异

解释: 打开另一个小程序。

# 方法参数

Object object

# object参数说明

属性名 类型 必填 默认值 说明
appKey String 要打开的小程序App Key(使用线上版appkey和envVersion配合使用)
path String 打开的页面路径,如果为空则打开首页。path 中 ? 后面的部分会成为 query,在小程序的 App.onLaunch、App.onShow 和 Page.onLoad 的回调函数中可以获取到 query 数据。
extraData Object 需要传递给目标小程序的数据,目标小程序可在 App.onLaunch(),App.onShow() 中获取到这份数据。
success Function 接口调用成功的回调函数
fail Function 接口调用失败的回调函数
complete Function 接口调用结束的回调函数(调用成功、失败都会执行)
envVersion String release 要打开的小程序版本(develop 开发版,trial 体验版)

# 示例

# 扫码体验

请使用百度APP扫码

# 图片示例

# 代码示例1: 打开正式版小程序 :

在开发者工具中预览效果

  • 在 swan 文件中
<view class="wrap">
    <button type="primary" bindtap="navigateToSmartProgram">navigateToSmartProgram</button>
</view>
  • 在 js 文件中
Page({
    navigateToSmartProgram() {
        swan.navigateToSmartProgram({
            appKey: '4fecoAqgCIUtzIyA4FAPgoyrc4oUc25c', // 要打开的小程序 App Key
            path: 'pages/openShare/openShare', // 打开的页面路径,如果为空则打开首页
            success: res => {
                console.log('navigateToSmartProgram success', res);
            },
            fail: err => {
                console.log('navigateToSmartProgram fail', err);
            }
        });
    }
});

# 代码示例2: 打开开发版小程序(携带参数) :

在开发者工具中预览效果

  • 在 swan 文件中
<view class="wrap">
    <button type="primary" bindtap="navigateToSmartProgram">navigateToSmartProgram</button>
</view>
  • 在 js 文件中
Page({
    navigateToSmartProgram() {
        swan.navigateToSmartProgram({
            appKey: '4fecoAqgCIUtzIyA4FAPgoyrc4oUc25c_dev15736', // 要打开的小程序 App Key,开发版appkey可在开发者工具中预览获取
            path: 'pages/openShare/openShare?k=v', // 打开的页面路径,如果为空则打开首页
            extraData: {
                foo: 'baidu'
            },
            success: res => {
                console.log('navigateToSmartProgram success', res);
            },
            fail: err => {
                console.log('navigateToSmartProgram fail', err);
            }
        });
    }
});

# 错误码

# Android

错误码 说明
201 解析失败,请检查调起协议是否合法
202 解析失败,请检查参数是否正确
402 安全性检查:访问控制校验失败
501 网络错误
1001 执行失败

# iOS

错误码 说明
202 解析失败,请检查参数是否正确
402 访问控制校验失败