更新记录

1.0.2(2026-08-06) 下载此版本

说明文档更新

1.0.1(2026-08-05) 下载此版本

mevermore-wechat


平台兼容性

uni-app(3.8.1)

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

uni-app x(3.8.1)

Chrome Safari Android iOS 鸿蒙 微信小程序
- - - - - -

mevermore-wechat

插件简介

mevermore-wechat 是一款基于 UTS 开发的 uni-app 原生插件,用于在 Android 和鸿蒙(HarmonyOS)平台上实现调起微信小程序的功能。插件封装了微信官方 SDK,提供了从 App 内一键跳转至指定微信小程序页面的能力。

适用场景

  • App 内跳转微信小程序完成支付
  • App 内跳转微信小程序进行下单/点餐
  • App 内跳转到微信小程序的任意业务页面
  • 需要与微信小程序联动的业务场景

支持平台

平台 最低版本 说明
Android 5.0 (minSdkVersion 21) 依赖微信 Android SDK
HarmonyOS API 12+ 依赖微信鸿蒙 SDK
iOS - 暂不支持
H5 - 暂不支持
小程序 - 暂不支持

功能特性

  • 调起微信小程序:通过 AppID + 小程序原始ID + 页面路径,直接跳转到指定小程序页面
  • 微信 SDK 封装:Android 集成 wechat-sdk-android:6.8.38,鸿蒙集成 @tencent/wechat_open_sdk
  • 回调处理:内置 WXEntryActivity 处理微信回调(onResp / onReq)
  • 数据透传:支持 extraData 参数向小程序传递额外数据
  • 多实例导航:提供 LoongNavigation 工具类,支持多种 Activity 跳转方式

安装配置

1. 引入插件

mevermore-wechat 放入项目的 uni_modules 目录中即可。

2. 制作自定义基座

由于插件依赖微信原生 SDK,必须使用自定义基座运行

  1. 在 HBuilderX 中选择 运行 → 运行到手机或模拟器 → 制作自定义调试基座
  2. 等待打包完成(首次打包需下载微信 SDK 依赖,耗时较长)
  3. 运行时勾选「使用自定义基座运行」

⚠️ 标准基座不包含微信 SDK,会导致编译失败。

3. 配置微信 AppID

在调用插件方法前,需要先完成微信开放平台的配置:

  1. 前往 微信开放平台 注册并获取 AppID
  2. 在微信开放平台配置你的应用包名和签名
  3. 将 AppID 填入调用参数中

API 说明

launchMiniProgram

调起微信小程序

参数:

参数 类型 必填 说明
appId string 微信开放平台 AppID
userName string 小程序原始ID(gh_ 开头)或 AppID
path string 小程序页面路径,为空则跳转首页
extraData Map<string, any> 传递给小程序的额外数据

返回值:

{
  success: boolean,   // 是否成功
  error?: string      // 失败时的错误信息
}

调用示例:

import { launchMiniProgram } from '@/uni_modules/mevermore-wechat';

const result = await launchMiniProgram({
  appId: 'wx1234567890',
  userName: 'gh_abcdef123456',
  path: 'pages/index/index?id=123',
  extraData: {
    orderId: 'ORDER_001',
    from: 'myApp'
  }
});

if (result.success) {
  console.log('调起成功');
} else {
  console.log('调起失败:', result.error);
}

架构设计

目录结构

mevermore-wechat/
├── interface.uts              # 接口定义(跨平台共享)
├── package.json                # 插件元信息
├── readme.md                   # 说明文档
└── utssdk/
    ├── app-android/            # Android 实现
    │   ├── index.uts           # Android 主入口
    │   ├── WXEntryActivity.uts # 微信回调 Activity
    │   ├── DemoActivity.uts    # Demo Activity
    │   ├── LoongConst.kt       # 常量存储(Kotlin)
    │   ├── LoongNavigation.kt  # 导航工具(Kotlin)
    │   ├── config.json         # Android 依赖配置
    │   ├── AndroidManifest.xml # Android 清单文件
    │   ├── res/layout/         # 布局资源
    │   └── ...
    └── app-harmony/            # 鸿蒙实现
        ├── index.uts           # 鸿蒙主入口
        ├── wxHandler.uts       # 微信事件处理器
        ├── config.json         # 鸿蒙依赖配置
        └── ...

Android 实现流程

调用 launchMiniProgram()
       │
       ▼
  initWXAPI(appId)          ← 初始化微信 SDK(创建并注册 WXAPI 实例)
       │
       ▼
  WXLaunchMiniProgram.Req()  ← 构造小程序跳转请求
       │
       ▼
  api.sendReq(req)           ← 发送请求,拉起微信
       │
       ▼
  微信跳转小程序             ← 用户进入小程序
       │
       ▼
  WXEntryActivity.onResp()   ← 微信回调,处理完成后 finish()

鸿蒙实现流程

调用 launchMiniProgram()
       │
       ▼
  WXAPIFactory.createWXAPI()  ← 初始化鸿蒙微信 SDK
       │
       ▼
  检查微信安装状态
       │
       ▼
  LaunchMiniProgramReq()       ← 构造跳转请求
       │
       ▼
  WXApi.sendReq(context, req)  ← 发送请求
       │
       ▼
  WXApiEventHandlerImpl        ← 处理微信回调

Android 权限说明

插件在 AndroidManifest.xml 中声明了以下权限:

<uses-permission android:name="android.permission.INTERNET" />
<uses-permission android:name="android.permission.MODIFY_AUDIO_SETTINGS" />
<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" android:maxSdkVersion="32" />
<uses-permission android:name="android.permission.ACCESS_WIFI_STATE" />
<uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" />

同时通过 <queries> 声明查询微信包:

<queries>
    <package android:name="com.tencent.mm" />
</queries>

依赖说明

Android 依赖

依赖 版本 用途
com.tencent.mm.opensdk:wechat-sdk-android 6.8.38 微信开放 SDK
androidx.appcompat:appcompat 1.7.0 兼容性支持库
androidx.activity:activity-ktx 1.8.0 Activity 扩展
androidx.constraintlayout:constraintlayout 2.1.4 约束布局
com.google.android.material:material 1.10.0 Material Design

鸿蒙依赖

依赖 版本 用途
@tencent/wechat_open_sdk ^1.0.19 鸿蒙微信开放 SDK

注意事项

  1. 必须使用自定义基座:插件依赖微信原生 SDK,标准基座不包含此依赖
  2. AppID 配置:需要在微信开放平台正确配置应用信息
  3. 微信安装:目标设备必须安装微信客户端,否则会返回"未安装微信客户端"错误
  4. 签名一致性:微信开放平台配置的签名必须与应用签名一致
  5. 包名一致性:AndroidManifest 中的包名需与微信开放平台配置一致
  6. 小程序审核:小程序需先通过微信审核上线后才能被外部 App 调起

常见问题

Q1: 运行时提示 "找不到 com.tencent.mm.opensdk 类"

原因:使用了标准基座,标准基座不包含微信 SDK 依赖。

解决方案:制作并使用自定义调试基座。

Q2: 点击无反应或调起失败

可能原因

  • 设备未安装微信
  • AppID 与包名/签名不匹配
  • 网络连接异常

排查步骤

  1. 确认设备已安装微信并登录
  2. 检查 AppID 是否正确
  3. 确认微信开放平台的签名与包名配置

Q3: 调起后无法回到 App

可能原因WXEntryActivity 未在 AndroidManifest.xml 中正确声明。

解决方案:检查 AndroidManifest.xml 中是否包含 WXEntryActivity 的 activity-alias 和 activity 声明。

Q4: 鸿蒙端调起失败

可能原因:鸿蒙微信 SDK 版本不匹配或未正确配置权限。

解决方案:确认 @tencent/wechat_open_sdk 版本为 1.0.19 及以上,检查鸿蒙权限配置。


更新日志

v1.0.1

  • 修复 WXEntryActivity 回调处理
  • 优化导航逻辑

v1.0.0

  • 初始版本发布
  • 支持 Android 平台调起微信小程序
  • 支持鸿蒙(HarmonyOS)平台调起微信小程序

隐私、权限声明

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

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

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

许可协议

MIT协议