更新记录
1.0.0(2026-09-01) 下载此版本
launchMiniProgram(options):带参打开指定小程序页面 isWeChatInstalled():检查微信是否安装 支持正式版、开发版和体验版 统一错误码及 success/fail/complete Android OpenSDK 6.8.34 iOS OpenSDK 2.0.7
平台兼容性
uni-app x(5.25)
| Chrome | Safari | Android | Android插件版本 | iOS | iOS插件版本 | 鸿蒙 | 微信小程序 |
|---|---|---|---|---|---|---|---|
| × | × | 5.0 | 1.0.0 | 12 | 1.0.0 | - | × |
微信小程序跳转(Android/iOS,免费开源)
一个面向 uni-app x App 端的免费 UTS API 插件。它调用微信 OpenSDK,从 App 直接打开指定微信小程序页面,并通过 path 携带参数。
- Android 与 iOS 使用同一套 API
- 支持正式版、开发版、体验版小程序
- Android 依赖微信 OpenSDK
6.8.34 - iOS 依赖微信 OpenSDK
2.0.7 - 不联网、不采集数据、无广告、MIT 许可证
使用前准备
- 在微信开放平台创建移动应用并取得移动应用
AppID。 - 将 Android 应用包名和签名、iOS Bundle ID 与 Universal Link 配置到该移动应用。
- 将目标小程序与该移动应用绑定。
- 涉及三方原生 SDK,真机调试时请制作自定义基座。
iOS 还需要在宿主 App 中完成以下微信 OpenSDK 标准配置:
- 将移动应用
AppID加入 URL Types / URL Schemes。 - 配置 Associated Domains,对应微信开放平台登记的 Universal Link。
- 调用时传入同一个
universalLink。
插件已加入微信查询 Scheme:weixin、weixinULAPI、weixinURLParamsAPI。
基本用法
import {
launchMiniProgram,
isWeChatInstalled,
LaunchMiniProgramOptions
} from '@/uni_modules/uts-wechat-mini-program-launcher'
const ticket = '后端签发的一次性短时票据'
const options : LaunchMiniProgramOptions = {
appId: 'wx1234567890abcdef',
userName: 'gh_xxxxxxxxxxxx',
path: 'pages/pay/index?ticket=' + encodeURIComponent(ticket),
miniProgramType: 0,
// Android 会忽略此字段;iOS 必填。
universalLink: 'https://example.com/app/',
success: (res) => {
console.log('微信已接收跳转请求', res.errMsg)
},
fail: (err) => {
console.error('跳转失败', err.errCode, err.errMsg)
}
}
if (isWeChatInstalled()) {
launchMiniProgram(options)
} else {
uni.showToast({ title: '请先安装微信', icon: 'none' })
}
userName 是小程序原始 ID(gh_...),不是小程序 AppID。
带参规则
参数直接放在 path 的 query 中:
path: 'pages/order/detail?ticket=' + encodeURIComponent(ticket)
小程序侧在目标页面的 onLoad 中读取:
onLoad((query) => {
const ticket = query['ticket'] ?? ''
})
不要把支付金额、用户身份、权限结论、长期 token 或其他敏感数据直接放进 query。推荐仅传后端签发的短时、一次性、绑定业务场景的票据;小程序拿票据向后端换取真实业务数据。
参数
| 参数 | 类型 | 必填 | 说明 |
|---|---|---|---|
appId |
string |
是 | 微信开放平台移动应用 AppID |
userName |
string |
是 | 小程序原始 ID,格式通常为 gh_... |
path |
string |
否 | 页面路径,可包含 query;空值打开首页 |
miniProgramType |
0 \| 1 \| 2 |
否 | 0 正式版,1 开发版,2 体验版;默认 0 |
extData |
string |
否 | OpenSDK 扩展数据;iOS 端应传 JSON 字符串 |
universalLink |
string |
iOS 是 | 微信开放平台登记的 Universal Link;Android 忽略 |
错误码
| 错误码 | 说明 |
|---|---|
9012001 |
appId 为空 |
9012002 |
userName 为空 |
9012003 |
小程序版本参数错误 |
9012004 |
iOS Universal Link 缺失或格式错误 |
9012005 |
未安装微信 |
9012006 |
OpenSDK 注册移动应用失败 |
9012007 |
OpenSDK 未能发出跳转请求 |
9012008 |
Android Application Context 不可用 |
9012009 |
OpenSDK 调用异常 |
success 只代表微信 OpenSDK 接收了跳转请求,不代表小程序页面加载成功,更不代表小程序中的支付或业务已完成。业务结果应由小程序和后端共同确认。
常见问题
为什么提示注册失败或没有拉起微信?
优先检查微信开放平台中的 Android 包名/签名、iOS Bundle ID/Universal Link 是否与当前安装包完全一致。调试包和正式包签名不同也会导致失败。
为什么修改代码后标准基座无效?
本插件集成了微信三方原生 SDK,需要自定义基座或正式云打包。
可以用于支付吗?
插件只负责打开小程序。支付应由小程序使用自己的合法支付能力发起;App 端不要相信 query 中的金额或支付结果,最终状态以服务端支付回调和查单结果为准。
开源协议
MIT。欢迎免费使用、修改和二次发布,也欢迎把修复反馈给社区。

收藏人数:
下载插件并导入HBuilderX
下载示例项目ZIP
赞赏(0)
下载 2
赞赏 0
下载 12551502
赞赏 1948
赞赏
京公网安备:11010802035340号