更新记录

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 许可证

使用前准备

  1. 在微信开放平台创建移动应用并取得移动应用 AppID
  2. 将 Android 应用包名和签名、iOS Bundle ID 与 Universal Link 配置到该移动应用。
  3. 将目标小程序与该移动应用绑定。
  4. 涉及三方原生 SDK,真机调试时请制作自定义基座。

iOS 还需要在宿主 App 中完成以下微信 OpenSDK 标准配置:

  • 将移动应用 AppID 加入 URL Types / URL Schemes。
  • 配置 Associated Domains,对应微信开放平台登记的 Universal Link。
  • 调用时传入同一个 universalLink

插件已加入微信查询 Scheme:weixinweixinULAPIweixinURLParamsAPI

基本用法

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。欢迎免费使用、修改和二次发布,也欢迎把修复反馈给社区。

参考资料

隐私、权限声明

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

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

插件不采集任何数据

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

许可协议

MIT License

Copyright (c) 2026 uts-wechat-mini-program-launcher contributors

Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions:

The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software.

THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.

暂无用户评论。