更新记录

1.0.0(2026-09-30) 下载此版本

首次发布。

  • 三端统一 API:openMiniProgram / isWeChatInstalled,success / fail / 平台 能力 说明
    Android 微信 OpenSDK wechat-sdk-android 6.8.0 Maven Central 自动依赖
    iOS 宿主注入 WechatOpenSDK Swift 桥接调用 WXApi
    HarmonyOS @tencent/wechat_open_sdk ohpm 依赖

平台兼容性

uni-app(5.26)

Vue2 Vue3 Chrome Safari app-vue app-nvue Android iOS 鸿蒙
- - - - - - - - -
微信小程序 支付宝小程序 抖音小程序 百度小程序 快手小程序 京东小程序 鸿蒙元服务 QQ小程序 飞书小程序 小红书小程序 快应用-华为 快应用-联盟
- - - - - - - - - - - -

uni-app x(5.26)

Chrome Safari Android iOS 鸿蒙 微信小程序
× × √ √ √ ×

其他

多语言 暗黑模式 宽屏模式 蒸汽模式
× × × √

微信小程序拉起(App 打开微信小程序)

面向 uni-app x(含蒸汽模式) 的三端 UTS 插件。App 内一键拉起指定微信小程序页面,可带路径与 query 参数,支持正式 / 开发 / 体验版。

平台 能力 说明
Android 微信 OpenSDK ***-sdk-android 6.8.0 Maven Central 自动依赖
iOS 宿主注入 ***OpenSDK Swift 桥接调用 WXApi
HarmonyOS **@tencent/***_open_sdk** ohpm 依赖

功能特性

特性 说明
三端统一 API openMiniProgram / is***Installed,success / fail / complete
指定页面与参数 path + query 自动拼成 path?query
小程序版本 envVersion:0 正式 / 1 开发 / 2 体验
安装检测 is***Installed() 先判断,避免无效拉起
失败可预期 统一 905xxxx 错误码 + 用户可读中文 errMsg
回传数据 小程序 extMsg 由宿主微信回调处理,本插件只负责发起拉起
Android 11+ 插件 Manifest 已注入 queries 可见 com.tencent.mm

平台兼容性

平台 支持 说明
Android ✅ 自定义基座或云打包;需宿主已配置微信 AppID;minSdkVersion 21
iOS ✅ 真机;需 LSApplicationQueriesSchemes 含 weixin / weixinULAPI 与 Universal Links;deploymentTarget 12.0
HarmonyOS ✅ 自定义基座或云打包 + arm64 真机
Web / 小程序 ❌ 调用回 9050005,请改用小程序跳转 API
  • HBuilderX:^3.6.8
  • uni-app x:App-Android / App-iOS / App-HarmonyOS(含蒸汽模式)

前置条件

  1. 微信开放平台 已创建移动应用,并开通「拉起小程序」能力。
  2. 小程序与移动应用已绑定(同一开放平台账号)。
  3. 宿主 manifest.json 已配置微信模块(uni-oauth / uni-share 的 weixin appid),或等价写入 WX_APPID meta。
  4. 未上架的移动应用,微信官方限制拉起小程序约 100 次/天,联调请注意。

快速开始

import { openMiniProgram, is***Installed } from '@/uni_modules/bin-wxminiprog'

if (!is***Installed()) {
  uni.showToast({ title: '请先安装微信', icon: 'none' })
  return
}

openMiniProgram({
  userName: 'gh_xxxxxxxxxxxx',      // 小程序原始 ID(gh_ 开头)
  path: 'pages/payApp/payApp',      // 页面路径,可省略(打开首页)
  query: 'payid=123&type=1',        // 不带问号的 query,自动拼在 path 后
  envVersion: 0,                    // 0 正式 / 1 开发 / 2 体验
  success: (res) => {
    // res.launched === true 表示已成功发起拉起
    console.log(res.userName, res.path)
  },
  fail: (err) => {
    uni.showToast({ title: err.errMsg, icon: 'none' })
  }
})

业务侧可将小程序原始 ID 抽成常量:

export const WX_MINI_PROGRAM_ID = 'gh_xxxxxxxxxxxx'

API

openMiniProgram(options)

拉起微信小程序指定页面。发起成功即触发 success;用户在小程序内完成业务后的 extMsg 回传由宿主微信回调处理,不在本 API 同步返回。

Options

字段 类型 必填 默认 说明
userName string ✅ - 小程序原始 ID,gh_ 开头(不是 AppID、不是昵称)
path string ❌ 空 小程序页面路径,如 pages/index/index;空则打开首页
query string ❌ 空 query 参数串,不带问号,如 id=1&type=a;与 path 同时有值时拼成 path?query
envVersion number ❌ 0 0 正式版 / 1 开发版 / 2 体验版
success (res) => void ❌ - 发起拉起成功
fail (err) => void ❌ - 失败
complete (res) => void ❌ - 结束回调(成功或失败都会走)

Success 结果

字段 类型 说明
launched boolean 固定 true,表示已成功发起拉起
path string 实际传给微信的 path(含 query),空串表示首页
userName string 小程序原始 ID

Fail 错误

字段 类型 说明
errCode number 见下方错误码表
errMsg string 用户可读中文文案
errSubject string 固定 bin-wxminiprog

is***Installed(): boolean

同步返回微信是否已安装。建议拉起前调用,未安装时给引导文案。

错误码

errCode 说明
9050001 未找到微信 AppID,请确认 manifest 已配置微信模块
9050002 微信未安装或当前微信版本不支持
9050003 参数缺失或非法(userName 须为 gh_ 开头的小程序原始 ID)
9050004 拉起微信小程序失败
9050005 当前平台不支持打开微信小程序(如 Web)

各端接入说明

Android

  • 依赖 Maven Central com.tencent.mm.opensdk:***-sdk-android:6.8.0(插件 config.json 已声明,云打包 / 自定义基座自动拉取)。
  • Manifest 已注入 Android 11+ 软件包可见性:<queries><package android:name="com.tencent.mm" /></queries>。
  • AppID 读取自宿主 meta WX_APPID。
  • 真机验证请使用 自定义基座或云打包(标准基座可能不含微信 SDK 依赖)。

iOS

  • SDK 由宿主微信模块注入,插件通过 Swift 桥调用,不重复 link SDK。
  • 需在 manifest 配置微信 appid、Universal Links;LSApplicationQueriesSchemes 须含 weixin / weixinULAPI(HBuilderX 微信模块通常已处理)。
  • AppID / Universal Link 兼容多种 Info.plist 键名,也可用 URL Scheme wx + 16 位 AppID。

HarmonyOS

  • ohpm 依赖 @tencent/***_open_sdk(^1.0.15)。
  • AppID 读取自应用 metadata WX_APPID。
  • 需 自定义基座或云打包 + arm64 真机验证。

隐私与权限

  • 插件不采集、不存储、不上传任何业务数据。
  • 拉起动作依赖本机已安装的微信与宿主配置的微信 AppID,走系统跳转,不获取微信内用户数据。
  • 小程序侧 extMsg 由微信回调到宿主微信模块,不在本插件落盘。
  • 如需统计拉起次数,请在业务层自行实现。

常见问题

Q:fail 9050001?
宿主未配置微信移动应用 AppID。在 manifest.json 的微信相关模块填好 appid,云打包 / 自定义基座后重试。

Q:fail 9050002?
设备未装微信,或微信版本过低。可先 is***Installed() 引导安装。

Q:fail 9050003?
userName 必须是小程序原始 ID(gh_ 开头)。到微信公众平台「设置—基本设置—帐号信息」查看原始 ID,不要填 AppID 或名称。

Q:success 了但没进目标页面?
检查 path 是否为小程序已发布/已体验的页面路径,query 不要带 ?。

Q:能收到小程序回传的 extMsg 吗?
可以,但不在本插件的 success 里。需在宿主微信回调中处理 COMMAND_LAUNCH_WX_MINIPROGRAM 的 extMsg。

Q:开发版 / 体验版拉不起来?
envVersion 传 1(开发)或 2(体验),且当前微信账号需有该小程序的开发/体验权限;正式包请传 0。

**Q:云打包报 Could not resolve ***-sdk-android?**
Android 侧需能访问 Maven Central(检查网络 / 代理配置)后重新打包。

版本要求

项 版本
HBuilderX ^3.6.8
uni-app x App-Android / App-iOS / App-HarmonyOS
Android ***-sdk 6.8.0(Maven Central)
HarmonyOS ***_open_sdk ^1.0.15
iOS deploymentTarget 12.0

隐私、权限声明

1. 本插件需要申请的系统权限列表:

Android 依赖软件包可见性 queries com.tencent.mm(插件 Manifest 已注入);需宿主配置微信开放平台移动应用 AppID(manifest uni-oauth/uni-share weixin);iOS 需 LSApplicationQueriesSchemes 含 weixin/weixinULAPI 与 Universal Links;HarmonyOS 依赖 ohpm @tencent/wechat_open_sdk

2. 本插件采集的数据、发送的服务器地址、以及数据用途说明:

插件仅发起微信小程序跳转,不采集、不存储、不上传任何业务数据。拉起依赖本机已安装微信与宿主配置的微信开放平台 AppID;小程序回传的 extMsg 由宿主微信模块处理,插件不落盘。Android 使用腾讯微信 OpenSDK,iOS 使用宿主注入的 WechatOpenSDK,鸿蒙使用 @tencent/wechat_open_sdk,请遵循腾讯微信开放平台相关服务与隐私条款。

3. 本插件是否包含广告,如包含需详细说明广告表达方式、展示频率:

无

许可协议

MIT协议

暂无用户评论。