更新记录
1.0.0(2026-03-19)
钉钉分享功能
平台兼容性
uni-app(4.76)
| Vue2 | Vue2插件版本 | Vue3 | Vue3插件版本 | Chrome | Safari | app-vue | app-vue插件版本 | app-nvue | app-nvue插件版本 | Android | Android插件版本 | iOS | iOS插件版本 | 鸿蒙 | 鸿蒙插件版本 |
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| √ | 1.0.0 | √ | 1.0.0 | × | × | √ | 1.0.0 | √ | 1.0.0 | 5.0 | 1.0.0 | 12 | 1.0.0 | 15 | 1.0.0 |
| 微信小程序 | 支付宝小程序 | 抖音小程序 | 百度小程序 | 快手小程序 | 京东小程序 | 鸿蒙元服务 | QQ小程序 | 飞书小程序 | 小红书小程序 | 快应用-华为 | 快应用-联盟 |
|---|---|---|---|---|---|---|---|---|---|---|---|
| × | × | × | × | × | × | × | × | × | × | × | × |
uni-app x(4.76)
| Chrome | Safari | Android | Android插件版本 | iOS | iOS插件版本 | 鸿蒙 | 鸿蒙插件版本 | 微信小程序 |
|---|---|---|---|---|---|---|---|---|
| × | × | 5.0 | 1.0.0 | 12 | 1.0.0 | 15 | 1.0.0 | × |
tt-dingtalk-share
🚀 钉钉分享 UTS 插件,为 uni-app x & uni-app 提供钉钉分享集成解决方案,支持分享文本、图片、链接到钉钉
📖 目录
SDK版本信息
| 平台 | 版本 | 支持状态 |
|---|---|---|
| iOS | 3.1.0 | ✅ 完全支持 |
| Android | 1.2.0.3 | ✅ 完全支持 |
| HarmonyOS | 1.1.5 | ✅ 完全支持 |
📚 推荐阅读: 钉钉分享接入文档
🚨 重要提示
⚠️ 必须使用自定义基座运行,否则无法找到插件方法
⚠️ 测试前需在钉钉开放平台创建应用并获取 Client ID
⚠️ 分享前需先调用 register 初始化 SDK
环境配置
前置条件
- 在钉钉开放平台创建移动应用
- 获取应用的 Client ID(即 appId)
- 配置应用包名和签名(Android)
iOS 平台配置
编辑插件内的 uni_modules/tt-dingtalk-share/utssdk/app-ios/Info.plist,将 CFBundleURLSchemes 中的 Client ID 替换为您的实际值:
<key>CFBundleURLSchemes</key>
<array>
<string>此处填写您应用的 Client ID</string>
</array>
Android 平台配置
Android 平台会自动完成相关配置,确保在钉钉开放平台正确配置应用包名和签名即可。
HarmonyOS 平台配置
在项目的 harmony-configs/entry/src/main/module.json5 中,确保 querySchemes 包含钉钉相关 scheme:
{
"module": {
"querySchemes": [
"dingtalk"
]
}
}
💡 若项目已有
module.json5,只需在querySchemes数组中添加"dingtalk"即可。
快速开始
1. 导入插件
uni-app x 版本
import * as ddShare from "@/uni_modules/tt-dingtalk-share";
export default {
data() {
return {
dingTalkShare: null as ddShare.TTDingTalkShare | null,
}
},
onLoad() {
this.dingTalkShare = ddShare.getTTDingTalkShare()
this.initDingTalkShare()
},
methods: {
initDingTalkShare() {
// SDK 初始化代码见下方
}
}
}
uni-app 版本
import * as ddShare from "@/uni_modules/tt-dingtalk-share";
export default {
data() {
return {
dingTalkShare: null,
}
},
onLoad() {
this.dingTalkShare = ddShare.getTTDingTalkShare()
this.initDingTalkShare()
},
methods: {
initDingTalkShare() {
// SDK 初始化代码见下方
}
}
}
2. 初始化 SDK
uni-app x 版本
initDingTalkShare() {
if (this.dingTalkShare == null) {
console.error('钉钉分享 SDK 初始化失败')
return
}
this.dingTalkShare!.register({
appId: "您的钉钉应用 Client ID",
success: (e) => {
console.log("✅ 钉钉分享 SDK 初始化成功")
this.checkDingTalkInstalled()
},
fail: (err) => {
console.error("❌ 钉钉分享 SDK 初始化失败:", err)
uni.showToast({
title: 'SDK 初始化失败',
icon: 'error'
})
}
} as ddShare.TTDingTalkShareRegisterOptions)
}
uni-app 版本
initDingTalkShare() {
if (this.dingTalkShare == null) {
console.error('钉钉分享 SDK 初始化失败')
return
}
this.dingTalkShare.register({
appId: "您的钉钉应用 Client ID",
success: (e) => {
console.log("✅ 钉钉分享 SDK 初始化成功")
this.checkDingTalkInstalled()
},
fail: (err) => {
console.error("❌ 钉钉分享 SDK 初始化失败:", err)
uni.showToast({
title: 'SDK 初始化失败',
icon: 'error'
})
}
})
}
基础使用
检测钉钉是否安装
uni-app x 版本
checkDingTalkInstalled() {
const isInstalled = this.dingTalkShare?.isInstall()
if (isInstalled == false) {
uni.showModal({
title: '提示',
content: '请先安装钉钉客户端',
showCancel: false
})
return false
}
return true
}
uni-app 版本
checkDingTalkInstalled() {
const isInstalled = this.dingTalkShare.isInstall()
if (isInstalled == false) {
uni.showModal({
title: '提示',
content: '请先安装钉钉客户端',
showCancel: false
})
return false
}
return true
}
功能介绍
分享文本
💡 将文本内容分享到钉钉
参数说明
TTDingTalkShareTextOptions
| 参数 | 类型 | 必填 | 说明 |
|---|---|---|---|
| text | string | ✅ | 分享的文本内容 |
| success | function | ❌ | 分享成功回调 |
| fail | function | ❌ | 分享失败回调 |
| complete | function | ❌ | 完成回调(成功或失败都会调用) |
示例代码
uni-app x 版本
shareText() {
if (this.checkDingTalkInstalled() == false) return
this.dingTalkShare?.shareText({
text: '这是分享的文本内容',
success: (res) => {
console.log('✅ 文本分享成功')
uni.showToast({ title: '分享成功' })
},
fail: (err) => {
console.error('❌ 分享失败:', err)
uni.showToast({ title: '分享失败', icon: 'error' })
}
} as ddShare.TTDingTalkShareTextOptions)
}
uni-app 版本
shareText() {
if (this.checkDingTalkInstalled() == false) return
this.dingTalkShare.shareText({
text: '这是分享的文本内容',
success: (res) => {
console.log('✅ 文本分享成功')
uni.showToast({ title: '分享成功' })
},
fail: (err) => {
console.error('❌ 分享失败:', err)
uni.showToast({ title: '分享失败', icon: 'error' })
}
})
}
分享图片
💡 将本地图片或网络图片分享到钉钉
参数说明
TTDingTalkShareImageOptions
| 参数 | 类型 | 必填 | 说明 |
|---|---|---|---|
| imagePath | string | ✅ | 图片路径,支持本地路径、file://、http(s):// |
| desc | string | ❌ | 图片描述 |
| success | function | ❌ | 分享成功回调 |
| fail | function | ❌ | 分享失败回调 |
| complete | function | ❌ | 完成回调 |
示例代码
uni-app x 版本
shareImage() {
if (this.checkDingTalkInstalled() == false) return
this.dingTalkShare?.shareImage({
imagePath: '/static/share-image.png', // 本地路径,也支持 file:// 或 http(s)://
desc: '图片描述',
success: (res) => {
console.log('✅ 图片分享成功')
uni.showToast({ title: '分享成功' })
},
fail: (err) => {
console.error('❌ 图片分享失败:', err)
uni.showToast({ title: '分享失败', icon: 'error' })
}
} as ddShare.TTDingTalkShareImageOptions)
}
uni-app 版本
shareImage() {
if (this.checkDingTalkInstalled() == false) return
this.dingTalkShare.shareImage({
imagePath: '/static/share-image.png',
desc: '图片描述',
success: (res) => {
console.log('✅ 图片分享成功')
uni.showToast({ title: '分享成功' })
},
fail: (err) => {
console.error('❌ 图片分享失败:', err)
uni.showToast({ title: '分享失败', icon: 'error' })
}
})
}
分享链接
💡 将网页链接分享到钉钉,支持标题、描述和缩略图
参数说明
TTDingTalkShareLinkOptions
| 参数 | 类型 | 必填 | 说明 |
|---|---|---|---|
| title | string | ✅ | 链接标题 |
| desc | string | ✅ | 链接描述 |
| url | string | ✅ | 链接地址 |
| thumbPath | string | ❌ | 缩略图路径,支持本地路径、file://、http(s):// |
| success | function | ❌ | 分享成功回调 |
| fail | function | ❌ | 分享失败回调 |
| complete | function | ❌ | 完成回调 |
示例代码
uni-app x 版本
shareLink() {
if (this.checkDingTalkInstalled() == false) return
this.dingTalkShare?.shareLink({
title: '网页标题',
desc: '网页描述信息',
url: 'https://www.example.com',
thumbPath: '/static/thumb.png', // 可选,也支持 http(s):// 网络图片
success: (res) => {
console.log('✅ 链接分享成功')
uni.showToast({ title: '分享成功' })
},
fail: (err) => {
console.error('❌ 链接分享失败:', err)
uni.showToast({ title: '分享失败', icon: 'error' })
}
} as ddShare.TTDingTalkShareLinkOptions)
}
uni-app 版本
shareLink() {
if (this.checkDingTalkInstalled() == false) return
this.dingTalkShare.shareLink({
title: '网页标题',
desc: '网页描述信息',
url: 'https://www.example.com',
thumbPath: '/static/thumb.png',
success: (res) => {
console.log('✅ 链接分享成功')
uni.showToast({ title: '分享成功' })
},
fail: (err) => {
console.error('❌ 链接分享失败:', err)
uni.showToast({ title: '分享失败', icon: 'error' })
}
})
}
错误处理
错误码说明
| 错误码 | 错误信息 | 适用场景 | 解决方案 |
|---|---|---|---|
| 基础错误 | |||
| 101 | SDK未初始化或初始化失败 | 所有功能 | 检查 appId 是否正确,先调用 register |
| 102 | 分享参数错误 | 链接分享 | 检查 title 等必填参数 |
| 103 | 分享类型不支持 | 分享功能 | 当前平台不支持该分享类型 |
| 104 | 图片文件不存在或格式不支持 | 图片分享 | 检查图片路径、文件是否存在 |
| 105 | 链接地址格式错误 | 链接分享 | 提供有效的 url |
| 106 | 分享内容为空 | 文本分享 | 提供非空文本内容 |
| 其他错误 | |||
| 999 | 其他错误 | 所有功能 | 查看钉钉原始错误码(err.cause) |
| 1000 | 暂不支持 | 所有功能 | 当前平台不支持此功能 |
错误对象结构
失败回调中的 err 对象包含:
errCode: 错误码errMsg: 错误信息cause: 钉钉 SDK 原始错误(如有)
常见问题
1. 找不到插件方法?
解决方案: 确保使用自定义基座运行,标准基座不包含原生插件。
2. iOS 平台分享无响应?
解决方案:
- 检查
uni_modules/tt-dingtalk-share/utssdk/app-ios/Info.plist中的CFBundleURLSchemes是否填写了正确的 Client ID - 确认钉钉开放平台的 iOS 应用配置正确
3. Android 平台分享失败?
解决方案:
- 确认应用包名、签名与钉钉开放平台配置一致
- 检查是否已正确调用
register初始化
4. 图片分享失败?
解决方案:
- 确保图片路径正确,本地路径需使用
convert2AbsFullPath可解析的格式 - 检查图片文件是否存在且格式支持(JPG、PNG 等)
5. HarmonyOS 平台问题?
解决方案:
- 确保
module.json5的querySchemes包含"dingtalk" - 确保项目依赖了
ddsharesdk.har库
祝您开发愉快! 🎉

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