更新记录

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

环境配置

前置条件

  1. 钉钉开放平台创建移动应用
  2. 获取应用的 Client ID(即 appId)
  3. 配置应用包名和签名(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.json5querySchemes 包含 "dingtalk"
  • 确保项目依赖了 ddsharesdk.har

祝您开发愉快! 🎉

隐私、权限声明

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

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

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

暂无用户评论。