更新记录
1.1.4(2025-12-13)
支持 获取微信开发平台标签的启动参数 功能
1.1.3(2025-11-26)
修复已知问题
1.1.2(2025-11-06)
更新安卓SDK版本为 6.8.34
查看更多平台兼容性
uni-app(4.36)
| Vue2 | Vue3 | Chrome | Safari | app-vue | app-nvue | Android | iOS | 鸿蒙 | 鸿蒙插件版本 |
|---|---|---|---|---|---|---|---|---|---|
| - | - | × | × | - | - | 5.0 | 12 | 12 | 1.0.6 |
| 微信小程序 | 支付宝小程序 | 抖音小程序 | 百度小程序 | 快手小程序 | 京东小程序 | 鸿蒙元服务 | QQ小程序 | 飞书小程序 | 快应用-华为 | 快应用-联盟 |
|---|---|---|---|---|---|---|---|---|---|---|
| × | × | × | × | × | × | × | × | × | × | × |
uni-app x(4.36)
| Chrome | Safari | Android | Android插件版本 | iOS | iOS插件版本 | 鸿蒙 | 微信小程序 |
|---|---|---|---|---|---|---|---|
| × | × | 5.0 | 1.0.3 | 12 | 1.0.3 | - | × |
tt-wechat-lite
🚀 轻量级微信SDK插件,为 uni-app x & uni-app 提供完整的微信集成解决方案
📖 目录
SDK版本信息
| 平台 | 版本 | 支持状态 |
|---|---|---|
| iOS | 2.0.5 | ✅ 完全支持 |
| Android | 6.8.34 | ✅ 完全支持 |
| HarmonyOS | 1.0.15 | ✅ 完全支持 |
功能支持矩阵
| 功能 | iOS | Android | HarmonyOS |
|---|---|---|---|
| 微信登录 | ✅ | ✅ | ✅ |
| 微信分享 | ✅ | ✅ | ✅ |
| 打开小程序 | ✅ | ✅ | ✅ |
| 打开客服 | ✅ | ✅ | ✅ |
| 监听从微信跳转 | ✅ | ✅ | ✅ |
📚 推荐阅读: 微信官方集成文档
🚨 重要提示
⚠️ 必须使用自定义基座运行,否则无法找到插件方法 ⚠️ 测试前需确保应用已通过微信开放平台审核,否则分享可能失败 ⚠️ Android 自定义基座必须使用自签名,勿使用云端签名 ⚠️ HBuilderX 4.76版本鸿蒙平台编译报错问题,请升级至4.8x版本 ⚠️ 编译报错排查:本插件会定期更新至最新版SDK,某些情况下编译报错可能不是插件不可用,而是本地环境问题或与官方插件冲突,遇到此类情况可通过IM联系我协助解决
环境配置
前置条件
- 在微信开放平台申请移动应用
- 获取
AppID - 配置应用包名和签名
iOS平台配置
1. 配置 URL Scheme
编辑插件内的 uni_modules/tt-wechat-lite/utssdk/app-ios/Info.plist,将以下配置项补充为您的实际值:
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
<key>WeChat</key>
<dict>
<key>appid</key>
<string>此处填写您的微信appid</string>
<key>universalLink</key>
<string>此处填写您的通用链接</string>
</dict>
<key>CFBundleURLTypes</key>
<array>
<dict>
<key>CFBundleTypeRole</key>
<string>Editor</string>
<key>CFBundleURLName</key>
<string>WeChat</string>
<key>CFBundleURLSchemes</key>
<array>
<string>此处填写您的微信appid</string>
</array>
</dict>
</array>
<key>LSApplicationQueriesSchemes</key>
<array>
<string>weixinULAPI</string>
<string>weixinURLParamsAPI</string>
<string>weixin</string>
</array>
</dict>
</plist>
2. 配置通用链接 (Universal Link)
📖 详细配置请参考: uni官方文档-通用链接
Android平台配置
Android平台会自动完成相关配置,确保在微信开放平台正确配置应用包名和签名即可。
HarmonyOS平台配置
⚠️ 重要授权说明:
- uni-app 项目: 由于官方目前不支持试用以及普通授权,建议通过示例中的 uni-app x 项目测通后购买源码授权使用
- uni-app x 项目: 可直接使用
1. 配置 module.json5
⚠️ 重要提示: 由于 harmony-configs/entry/src/main/module.json5 会完全替换默认配置,需要提供完整的配置文件。
在项目的 harmony-configs/entry/src/main/module.json5 文件中使用以下完整配置:
{
"module": {
"name": "entry",
"type": "entry",
"description": "$string:module_desc",
"mainElement": "EntryAbility",
"deviceTypes": [
"phone",
"tablet",
"2in1"
],
"deliveryWithInstall": true,
"installationFree": false,
"pages": "$profile:main_pages",
"querySchemes": [
"weixin",
"wxopensdk" //如果发现首次授权登录获取不到结果,去掉这个scheme(微信鸿蒙SDK某些版本的BUG)
],
"abilities": [
{
"name": "EntryAbility",
"srcEntry": "./ets/entryability/EntryAbility.ets",
"description": "$string:EntryAbility_desc",
"icon": "$media:layered_image",
"label": "$string:EntryAbility_label",
"startWindowIcon": "$media:startIcon",
"startWindowBackground": "$color:start_window_background",
"exported": true,
"skills": [
{
"entities": [
"entity.system.home"
],
"actions": [
"action.system.home",
"wxentity.action.open"
]
}
]
}
],
"requestPermissions": [
{
"name": "ohos.permission.INTERNET"
}
]
}
}
💡 配置说明:
- 必须使用完整配置:
module.json5会覆盖默认配置,不能只添加部分字段- 关键添加项:
querySchemes数组包含"weixin"和"wxopensdk"skills数组添加wxentity.action.open配置(用于支持从微信跳转到应用功能)- 保留默认配置: 其他配置项保持与默认模板一致
2. 使用说明
配置文件覆盖机制:
- HarmonyOS 的
harmony-configs/entry/src/main/module.json5采用完全替换机制 - 一旦创建此文件,会完全覆盖默认的 module.json5 配置
- 因此必须提供完整的配置内容,不能只添加部分字段
配置要点:
- ✅ 使用上述提供的完整模板
- ✅ 确保
querySchemes包含微信相关 scheme("weixin","wxopensdk") - ✅ 确保
skills数组包含wxentity.action.open配置(支持从微信跳转功能) - ✅ 保留所有默认的 abilities、permissions 等配置
- ❌ 不要只添加部分字段(会导致其他配置丢失)
3. 功能限制
- 音乐分享功能不支持: HarmonyOS平台暂不支持音乐分享功能
快速开始
1. 导入插件
uni-app x 版本
import * as wxsdk from "@/uni_modules/tt-wechat-lite";
export default {
data() {
return {
weChat: null as wxsdk.TTWeChatSDK | null,
}
},
onLoad() {
// 初始化微信SDK实例
this.weChat = wxsdk.getTTWeChatSDK()
// 注册微信SDK
this.initWeChatSDK()
},
methods: {
// 初始化微信SDK
initWeChatSDK() {
// SDK初始化代码见下方
}
}
}
uni-app 版本
import * as wxsdk from "@/uni_modules/tt-wechat-lite";
export default {
data() {
return {
weChat: wxsdk.TTWeChatSDK,
}
},
onLoad() {
// 初始化微信SDK实例
this.weChat = wxsdk.getTTWeChatSDK()
// 注册微信SDK
this.initWeChatSDK()
},
methods: {
// 初始化微信SDK
initWeChatSDK() {
// SDK初始化代码见下方
}
}
}
2. 初始化 SDK
uni-app x 版本
initWeChatSDK() {
if (this.weChat == null) {
console.error('微信SDK初始化失败')
return
}
this.weChat.register({
appid: "您的微信AppID", // 必填:微信开放平台申请的AppID
universalLink: "您的通用链接", // iOS必填:通用链接
success: (e) => {
console.log("✅ 微信SDK初始化成功");
// 可以在这里进行后续操作,如检测微信是否安装
this.checkWeChatInstalled()
},
fail: (err) => {
console.error("❌ 微信SDK初始化失败:", err);
uni.showToast({
title: '微信SDK初始化失败',
icon: 'error'
})
}
} as wxsdk.TTWeChatRegisterOptions);
}
uni-app 版本
initWeChatSDK() {
if (this.weChat == null) {
console.error('微信SDK初始化失败')
return
}
this.weChat.register({
appid: "您的微信AppID", // 必填:微信开放平台申请的AppID
universalLink: "您的通用链接", // iOS必填:通用链接
success: (e) => {
console.log("✅ 微信SDK初始化成功");
// 可以在这里进行后续操作,如检测微信是否安装
this.checkWeChatInstalled()
},
fail: (err) => {
console.error("❌ 微信SDK初始化失败:", err);
uni.showToast({
title: '微信SDK初始化失败',
icon: 'error'
})
}
});
}
基础使用
检测微信是否安装
uni-app x 版本
checkWeChatInstalled() {
const isInstalled = this.weChat?.isInstall()
if (isInstalled == false) {
uni.showModal({
title: '提示',
content: '请先安装微信客户端',
showCancel: false
})
return false
}
return true
}
uni-app 版本
checkWeChatInstalled() {
const isInstalled = this.weChat.isInstall()
if (isInstalled == false) {
uni.showModal({
title: '提示',
content: '请先安装微信客户端',
showCancel: false
})
return false
}
return true
}
功能介绍
微信授权登录
💡 微信登录是一个两步过程:先获取code,再通过后端接口换取用户信息
第一步:获取授权码 (code)
参数说明
TTWeChatLoginOptions
| 参数 | 类型 | 必填 | 说明 |
|---|---|---|---|
| state | string | 否 | 请求唯一标识,原样返回,长度不超过1K |
返回值 TTWeChatLoginSuccess
| 参数 | 类型 | 说明 |
|---|---|---|
| code | string | 用于换取access_token的授权码 |
| state | string | 原样返回的标识符 |
示例代码
// 微信授权登录
handleWeChatLogin() {
// 先检查微信是否安装
if (this.checkWeChatInstalled() == false) {
return
}
this.weChat?.login({
state: Date.now().toString(), // 使用时间戳作为唯一标识
success: (result) => {
console.log("✅ 获取授权码成功:", result.code);
// 将code发送到后端服务器
this.sendCodeToServer(result.code)
},
fail: (error) => {
console.error("❌ 微信授权失败:", error);
uni.showToast({
title: '授权失败',
icon: 'error'
})
}
} as wxsdk.TTWeChatLoginOptions)
}
// 发送code到后端服务器
sendCodeToServer(code: string) {
uni.request({
url: 'https://your-server.com/api/wechat/login',
method: 'POST',
data: { code },
success: (res) => {
// 处理登录成功逻辑
console.log('登录成功:', res.data)
},
fail: (err) => {
console.error('登录请求失败:', err)
}
})
}
第二步:后端换取用户信息
📖 详细流程请参考: 微信授权后接口调用文档
后端需要完成的步骤:
- 使用code换取access_token
- 使用access_token获取用户信息
- 返回用户信息给前端
微信分享功能
💡 支持分享文本、图片、视频、网页、小程序和音乐到微信好友、朋友圈和收藏 🔧 轻量版说明: 本插件为轻量版,专注于登录和分享功能。如需支付功能,请使用 tt-wechat-pro 插件。
分享类型和场景
分享类型 (type)
0- 文本分享1- 图片分享2- 视频分享3- 网页分享4- 小程序分享5- 音乐分享 ⚠️ HarmonyOS平台不支持
分享场景 (scene)
0- 分享到聊天界面1- 分享到朋友圈2- 分享到收藏
参数说明
TTWeChatShareOptions
| 参数 | 类型 | 必填 | 说明 |
|---|---|---|---|
| type | number | ✅ | 分享类型,见上表 |
| scene | number | ✅ | 分享场景,见上表 |
| title | string | 条件 | 分享标题(文本分享时必填) |
| desc | string | ❌ | 分享描述 |
| imageUrl | string | 条件 | 图片地址(图片分享时必填,仅支持本地路径) |
| thumbImageUrl | string | 条件 | 缩略图地址(小程序分享必填,仅支持本地路径,不能超过32kb) |
| videoUrl | string | 条件 | 视频地址(视频分享时必填) |
| musicUrl | string | 条件 | 音乐地址(音乐分享时必填) |
| href | string | 条件 | 网页链接(网页分享时必填) |
| miniProgram | TTWeChatShareMiniProgramOptions | 条件 | 小程序信息(小程序分享时必填) |
TTWeChatShareMiniProgramOptions
| 参数 | 类型 | 必填 | 说明 |
|---|---|---|---|
| userName | string | ✅ | 小程序原始ID |
| path | string | ✅ | 小程序页面路径 |
| webpageUrl | string | ✅ | 兼容低版本的网页URL |
| miniProgramType | number | ❌ | 版本类型:0-正式版,1-开发版,2-体验版(默认0) |
使用示例
1. 分享文本
shareText() {
this.weChat?.share({
type: 0,
scene: 0, // 分享到聊天
title: '这是分享的文本内容',
desc: '分享描述信息',
success: (res) => {
console.log('✅ 文本分享成功')
uni.showToast({ title: '分享成功' })
},
fail: (error) => {
console.error('❌ 分享失败:', error)
uni.showToast({ title: '分享失败', icon: 'error' })
}
} as wxsdk.TTWeChatShareOptions)
}
uni-app 版本
shareText() {
this.weChat.share({
type: 0,
scene: 0, // 分享到聊天
title: '这是分享的文本内容',
desc: '分享描述信息',
success: (res) => {
console.log('✅ 文本分享成功')
uni.showToast({ title: '分享成功' })
},
fail: (error) => {
console.error('❌ 分享失败:', error)
uni.showToast({ title: '分享失败', icon: 'error' })
}
})
}
2. 分享图片
shareImage() {
this.weChat?.share({
type: 1,
scene: 1, // 分享到朋友圈
imageUrl: '/static/share-image.png', // 本地图片路径
success: (res) => {
console.log('✅ 图片分享成功')
},
fail: (error) => {
console.error('❌ 图片分享失败:', error)
}
} as wxsdk.TTWeChatShareOptions)
}
uni-app 版本
shareImage() {
this.weChat.share({
type: 1,
scene: 1, // 分享到朋友圈
imageUrl: '/static/share-image.png', // 本地图片路径
success: (res) => {
console.log('✅ 图片分享成功')
},
fail: (error) => {
console.error('❌ 图片分享失败:', error)
}
})
}
3. 分享网页
shareWebPage() {
this.weChat?.share({
type: 3,
scene: 0,
title: '网页标题',
desc: '网页描述信息',
href: 'https://www.example.com',
imageUrl: '/static/webpage-thumb.png', // 缩略图
thumbImageUrl: '/static/share-thumb-image.png', // 本地图片路径
success: (res) => {
console.log('✅ 网页分享成功')
},
fail: (error) => {
console.error('❌ 网页分享失败:', error)
}
} as wxsdk.TTWeChatShareOptions)
}
uni-app 版本
shareWebPage() {
this.weChat.share({
type: 3,
scene: 0,
title: '网页标题',
desc: '网页描述信息',
href: 'https://www.example.com',
imageUrl: '/static/webpage-thumb.png', // 缩略图
thumbImageUrl: '/static/share-thumb-image.png', // 本地图片路径
success: (res) => {
console.log('✅ 网页分享成功')
},
fail: (error) => {
console.error('❌ 网页分享失败:', error)
}
})
}
4. 分享小程序
shareMiniProgram() {
this.weChat?.share({
type: 4,
scene: 0,
title: '小程序标题',
desc: '小程序描述',
thumbImageUrl: '/static/share-thumb-image.png', // 本地图片路径
miniProgram: {
userName: 'gh_xxxxxxxxxxxx', // 小程序原始ID
path: 'pages/index/index', // 小程序页面路径
webpageUrl: 'https://www.example.com', // 兼容网页
miniProgramType: 0 // 正式版
} as wxsdk.TTWeChatShareMiniProgramOptions,
success: (res) => {
console.log('✅ 小程序分享成功')
},
fail: (error) => {
console.error('❌ 小程序分享失败:', error)
}
} as wxsdk.TTWeChatShareOptions)
}
uni-app 版本
shareMiniProgram() {
this.weChat.share({
type: 4,
scene: 0,
title: '小程序标题',
desc: '小程序描述',
thumbImageUrl: '/static/share-thumb-image.png', // 本地图片路径
miniProgram: {
userName: 'gh_xxxxxxxxxxxx', // 小程序原始ID
path: 'pages/index/index', // 小程序页面路径
webpageUrl: 'https://www.example.com', // 兼容网页
miniProgramType: 0 // 正式版
},
success: (res) => {
console.log('✅ 小程序分享成功')
},
fail: (error) => {
console.error('❌ 小程序分享失败:', error)
}
})
}
打开微信小程序
💡 从您的应用直接跳转到指定的微信小程序
参数说明
TTWeChatLaunchMiniProgramOptions
| 参数 | 类型 | 必填 | 说明 |
|---|---|---|---|
| userName | string | ✅ | 小程序原始ID (以 gh_ 开头) |
| path | string | ✅ | 小程序页面路径 |
| miniProgramType | number | ❌ | 版本类型:0-正式版,1-开发版,2-体验版(默认0) |
示例代码
// 打开微信小程序
openMiniProgram() {
// 先检查微信是否安装
if (this.checkWeChatInstalled() == false) {
return
}
this.weChat?.launchMiniProgram({
userName: "gh_xxxxxxxxxxxx", // 小程序原始ID
path: "pages/index/index?param=value", // 可以带参数
miniProgramType: 0, // 正式版
success: (e) => {
console.log("✅ 成功打开小程序");
},
fail: (err) => {
console.error("❌ 打开小程序失败:", err);
uni.showToast({
title: '打开失败',
icon: 'error'
})
}
} as wxsdk.TTWeChatLaunchMiniProgramOptions);
}
打开微信客服
💡 打开企业微信客服功能,为用户提供在线客服支持
参数说明
TTWeChatOpenCustomerServiceOptions
| 参数 | 类型 | 必填 | 说明 |
|---|---|---|---|
| corpId | string | ✅ | 企业微信的企业ID |
| url | string | ✅ | 客服会话URL |
示例代码
// 打开微信客服
openCustomerService() {
// 先检查微信是否安装
if (this.checkWeChatInstalled() == false) {
return
}
this.weChat?.openCustomerService({
corpId: 'your_corp_id', // 企业微信ID
url: 'https://work.weixin.qq.com/kf/xxx', // 客服URL
success: (e) => {
console.log("✅ 成功打开客服");
},
fail: (err) => {
console.error("❌ 打开客服失败:", err);
uni.showToast({
title: '打开客服失败',
icon: 'error'
})
}
} as wxsdk.TTWeChatOpenCustomerServiceOptions);
}
监听从微信跳转
💡 监听并处理从微信跳转到应用的事件,获取微信传递的启动参数(extData)
功能说明
当用户通过微信分享或其他方式从微信跳转到您的应用时,可以通过 onLaunchFromWX 方法监听并获取微信传递的启动参数。该功能支持冷启动场景,即使应用未运行也能正确接收参数。
使用场景:
- 从微信分享的网页链接跳转回应用
- 从微信小程序跳转到原生应用
- 通过微信传递参数到应用进行特定操作
参数说明
TTWeChatLaunchFromWXOptions
| 参数 | 类型 | 必填 | 说明 |
|---|---|---|---|
| success | function | ❌ | 成功回调,当监听到从微信跳转事件时触发 |
| fail | function | ❌ | 失败回调 |
| complete | function | ❌ | 完成回调(无论成功或失败都会触发) |
TTWeChatLaunchFromWXSuccess
| 参数 | 类型 | 说明 |
|---|---|---|
| data | string | null | 从微信跳转过来的数据(extData 字符串),可以是普通字符串或 JSON 字符串格式 |
重要提示
⚠️ 监听时机:
- 建议在应用启动时(
onLoad)立即设置监听 - SDK 内置缓存机制,即使微信回调先于监听器设置,也能正确接收数据
- 缓存有效期:5分钟
⚠️ 资源清理:
- 在页面销毁时(
onUnload)必须调用offLaunchFromWX()取消监听 - 避免内存泄漏和重复监听
⚠️ HarmonyOS 配置:
- 必须在
module.json5的skills数组中添加wxentity.action.open配置 - 详情见环境配置 - HarmonyOS平台配置
使用示例
uni-app x 版本
import * as wxsdk from "@/uni_modules/tt-wechat-lite";
import { ref } from 'vue';
export default {
data() {
return {
weChat: null as wxsdk.TTWeChatSDK | null,
}
},
onLoad() {
// 初始化微信SDK实例
this.weChat = wxsdk.getTTWeChatSDK();
// 设置监听微信跳转事件
this.setupLaunchListener();
},
onUnload() {
// 取消监听微信跳转事件
this.removeLaunchListener();
},
methods: {
// 设置监听微信跳转事件
setupLaunchListener() {
this.weChat?.onLaunchFromWX({
success: (res) => {
console.log("✅ 监听到从微信跳转事件:", res);
// 处理启动参数
if (res.data != null && res.data.length > 0) {
console.log("启动参数:", res.data);
uni.showToast({
title: '从微信跳转成功',
icon: 'success'
});
} else {
console.log("未获取到启动参数");
}
},
fail: (err) => {
console.error("❌ 监听微信跳转事件失败:", err);
uni.showToast({
title: '监听失败',
icon: 'error'
});
},
complete: (res) => {
console.log("微信跳转事件监听完成:", res);
}
} as wxsdk.TTWeChatLaunchFromWXOptions);
},
// 取消监听微信跳转事件
removeLaunchListener() {
this.weChat?.offLaunchFromWX();
}
}
}
uni-app 版本
import * as wxsdk from "@/uni_modules/tt-wechat-lite";
export default {
data() {
return {
weChat: null,
}
},
onLoad() {
// 初始化微信SDK实例
this.weChat = wxsdk.getTTWeChatSDK();
// 设置监听微信跳转事件
this.setupLaunchListener();
},
onUnload() {
// 取消监听微信跳转事件
this.removeLaunchListener();
},
methods: {
// 设置监听微信跳转事件
setupLaunchListener() {
this.weChat.onLaunchFromWX({
success: (res) => {
console.log("✅ 监听到从微信跳转事件:", res);
// 处理启动参数
if (res.data != null && res.data.length > 0) {
console.log("启动参数:", res.data);
uni.showToast({
title: '从微信跳转成功',
icon: 'success'
});
} else {
console.log("未获取到启动参数");
}
},
fail: (err) => {
console.error("❌ 监听微信跳转事件失败:", err);
uni.showToast({
title: '监听失败',
icon: 'error'
});
},
complete: (res) => {
console.log("微信跳转事件监听完成:", res);
}
});
},
// 取消监听微信跳转事件
removeLaunchListener() {
this.weChat.offLaunchFromWX();
}
}
}
参数格式说明
从微信跳转时传递的 extData 参数支持以下格式:
1. JSON 字符串格式(推荐)
{"page": "/pages/detail/detail", "id": "12345", "userId": "user123"}
使用场景:传递结构化的业务数据,如页面路径、商品ID、用户ID等。
2. URL 查询字符串格式
page=/pages/detail/detail&id=12345&userId=user123
使用场景:兼容某些场景下的参数传递。
3. 普通字符串格式
some-custom-data
使用场景:传递简单的标识或标记。
工作原理
extData 的传递流程:
- 用户在微信中打开分享的链接或小程序
- 用户在微信内操作后跳转回您的应用
- 微信 SDK 将之前设置的 extData 数据传递回应用
- 通过
onLaunchFromWX监听器接收数据
注意:extData 数据是由微信平台在跳转时自动传递的,开发者需要在微信开放平台配置相应的参数传递机制。
常见问题处理
1. 没有收到回调?
可能原因:
- 监听器设置时机太晚(已在微信回调之后)
- HarmonyOS 平台缺少
wxentity.action.open配置 - 微信开放平台配置不正确
解决方案:
- SDK 内置缓存机制,即使回调先到也不会丢失数据
- 确保在
onLoad时立即设置监听 - HarmonyOS 平台检查
module.json5配置 - 检查微信开放平台的 URL Scheme 配置
2. 参数解析失败?
可能原因:
- extData 格式不是有效的 JSON
- 包含特殊字符未编码
解决方案:
- 使用 try-catch 包裹 JSON.parse
- 对特殊字符进行 URL 编码
- 检查控制台日志查看原始数据
3. 冷启动场景不工作?
SDK 内置了缓存机制,即使在应用未运行时也能正确接收参数:
- 缓存有效期:5分钟
- 自动在设置监听时检查缓存
- 无需额外配置
错误处理
错误码说明
| 错误码 | 错误信息 | 适用场景 | 解决方案 |
|---|---|---|---|
| 基础错误 | |||
| 101 | 未安装微信 | 所有功能 | 提示用户安装微信客户端 |
| 102 | SDK未初始化或初始化失败 | 所有功能 | 检查SDK初始化参数,重新注册 |
| 分享错误 | |||
| 301 | type参数非法 | 分享功能 | 检查分享类型参数(0-5) |
| 302 | scene参数非法 | 分享功能 | 检查分享场景参数(0-2) |
| 303 | imageUrl不能为空 | 图片分享 | 提供有效的本地图片路径 |
| 304 | 图片类型的分享imageUrl参数异常 | 图片分享 | 检查图片路径和文件格式 |
| 305 | title不能为空 | 文本分享 | 提供分享标题 |
| 306 | videoUrl不能为空 | 视频分享 | 提供有效的视频链接 |
| 307 | href不能为空 | 网页分享 | 提供有效的网页链接 |
| 308 | miniProgram不能为空 | 小程序分享 | 提供完整的小程序信息 |
| 309 | musicUrl不能为空 | 音乐分享 | 提供有效的音乐链接 |
| 交互状态 | |||
| 901 | 已取消 | 所有功能 | 根据业务忽略或提示用户 |
| 902 | 被拒绝 | 所有功能 | 提示用户授权或重试 |
| 小程序相关 | |||
| 401 | userName不能为空 | 打开小程序 | 提供小程序原始ID |
| 402 | path不能为空 | 打开小程序 | 提供小程序页面路径 |
| 310 | userName不能为空(兼容编码) | 打开小程序 | 与401等价,按同样方式处理 |
| 311 | path不能为空(兼容编码) | 打开小程序 | 与402等价,按同样方式处理 |
| 客服相关 | |||
| 501 | corpId不能为空 | 打开客服 | 提供企业微信ID |
| 502 | url不能为空 | 打开客服 | 提供客服会话URL |
| 其他错误 | |||
| 999 | 其他错误 | 所有功能 | 查看微信原始错误码和详细信息 |
| 1000 | 暂无支持 | 所有功能 | 当前平台不支持此功能 |
常见问题
1. 找不到插件方法?
解决方案: 确保使用自定义基座运行,标准基座不包含原生插件。
2. iOS平台分享/登录无响应?
解决方案:
- 检查
uni_modules/tt-wechat-lite/utssdk/app-ios/Info.plist中的 URL Scheme 配置 - 确认通用链接配置正确
- 验证微信开放平台的 iOS 应用配置
3. Android平台功能异常?
解决方案:
- 确认应用签名与微信开放平台配置一致
- 检查包名是否正确
- 确保微信客户端版本支持相关功能
4. 分享图片失败?
解决方案:
- 确保图片路径为本地路径
- 检查图片文件是否存在
- 图片大小不要超过限制(建议小于32KB)
5. 小程序跳转失败?
解决方案:
- 确认小程序原始ID正确(以 gh_ 开头)
- 检查小程序是否已发布
- 验证跳转路径是否存在
6. 需要支付功能怎么办?
解决方案:
- 本插件为轻量版,不包含支付功能
- 如需支付功能,请使用 tt-wechat-pro 专业版插件
- 专业版包含完整的登录、分享、支付、小程序等功能
7. HarmonyOS平台问题?
常见问题:
- 配置不完整: 只添加了
querySchemes导致应用无法正常运行 - 功能异常: 使用了不支持的音乐分享功能
解决方案:
- 在正确路径
harmony-configs/entry/src/main/module.json5创建配置文件 - 使用文档提供的完整
module.json5模板配置 - 确认
querySchemes数组包含"weixin"和"wxopensdk" - 检查所有默认配置项是否保留(abilities、permissions等)
- 避免使用音乐分享功能(平台不支持)
8. 从微信跳转到应用没有收到回调?
常见问题:
- 监听器设置时机: 在微信回调之后才设置监听器
- 配置问题: 微信开放平台配置不正确
- HarmonyOS配置缺失: 缺少
wxentity.action.open配置 - 参数格式:
app-parameter格式错误
解决方案:
- 使用冷启动支持: API内置缓存机制,即使回调先到也不会丢失数据
- 检查配置: 确认微信开放平台的URL Scheme配置正确
- HarmonyOS特殊配置: 确保
module.json5中的skills数组包含wxentity.action.open配置 - 参数格式:
app-parameter支持URL查询字符串格式,如:action=login&userId=12345 - 调试技巧: 在控制台查看是否有"微信跳转数据已缓存"的日志
9. 微信跳转数据解析失败?
常见问题:
- extData格式: 参数格式不符合URL查询字符串规范
- 特殊字符: 包含未编码的特殊字符
解决方案:
- 参数格式: 使用标准的URL查询字符串格式:
key1=value1&key2=value2 - 字符编码: 对特殊字符进行URL编码
- 手动解析: 开发者需要手动解析
extData字符串 - 调试方法: 检查控制台的"解析参数失败"日志
📞 技术支持
如果在使用过程中遇到问题,请:
- 查阅上方常见问题
- 参考微信官方开发文档
- 检查配置是否正确
- 确认微信客户端版本
祝您开发愉快! 🎉

收藏人数:
购买源码授权版(
试用
使用 HBuilderX 导入示例项目
赞赏(1)
下载 294
赞赏 3
下载 12362098
赞赏 1828
赞赏
京公网安备:11010802035340号