更新记录
1.0.0(2026-04-11) 下载此版本
初次提交
平台兼容性
uni-app x(4.72)
| Chrome | Safari | Android | iOS | 鸿蒙 | 微信小程序 |
|---|---|---|---|---|---|
| × | × | 5.0 | 12 | √ | × |
laoqianjunzi-ding
laoqianjunzi-ding 是一个面向 uni-app / uni-app x 的钉钉能力聚合插件,统一封装了以下能力:
- 钉钉授权登录
- 钉钉客户端安装检测
- 文本分享
- 本地图片分享
- base64 图片分享
- 网络图片分享
- 网页卡片分享
- 能力查询
当前目录提供了 app-android、app-ios、app-harmony 的原生接入实现;web 与 mp-weixin 提供可编译占位实现,调用时会返回“不支持当前平台”的结果对象,避免编译报错。
平台能力说明
| 平台 | 授权登录 | 安装检测 | 文本分享 | 本地图片 | base64 图片 | 网络图片 | 网页卡片 |
|---|---|---|---|---|---|---|---|
| Android App | 支持 | 支持 | 支持 | 支持 | 支持 | 支持 | 支持 |
| iOS App | 支持 | 支持 | 支持 | 支持 | 支持 | 支持 | 支持 |
| Harmony App | 支持 | 支持 | 支持 | 支持 | 不支持 | 不支持 | 支持 |
| Web | 占位 | 占位 | 占位 | 占位 | 占位 | 占位 | 占位 |
| 微信小程序 | 占位 | 占位 | 占位 | 占位 | 占位 | 占位 | 占位 |
安装后需要配置的内容
Android
插件已内置 Android 依赖与回调 Activity 声明,常规情况下无需额外补 manifest。打包前请确认:
- 钉钉开放平台应用已创建
clientId与redirectUri准备完成- 业务后端已配置好用
authCode换取登录态的接口
iOS
请修改 uni_modules/laoqianjunzi-ding/utssdk/app-ios/Info.plist 中的占位值:
LqjzDingClientIdCFBundleURLSchemes中的钉钉 Client ID
如果主工程还有额外的 URL Scheme 管理逻辑,请确保没有覆盖这段钉钉回调配置。
Harmony
插件已在 utssdk/app-harmony/config.json 中声明本地 har 依赖。请确认项目编译环境能正常读取插件目录里的 libs 资源。
导入方式
页面或业务模块中请直接从插件根目录导入:
import {
setupLaoqianjunziDing,
beginDingAuth,
checkDingClientInstalled,
checkDingShareReady,
sendDingText,
sendDingLocalImage,
sendDingBase64Image,
sendDingRemoteImage,
sendDingLink,
queryDingCapabilities
} from '@/uni_modules/laoqianjunzi-ding'
初始化
建议在应用启动后尽早完成初始化。
setupLaoqianjunziDing({
clientId: '你的钉钉 Client ID',
redirectUri: 'https://你的回调域名',
scope: 'openid',
state: 'launch-state',
prompt: 'consent',
iosBundleId: '你的 iOS Bundle Identifier'
})
参数说明:
clientId:钉钉开放平台应用的 Client IDredirectUri:钉钉授权回调域名scope:默认授权范围,通常使用openidstate:默认业务状态值prompt:授权确认模式,常用值是consentiosBundleId:iOS 可选项,不传时默认读取主应用 Bundle ID
授权登录
beginDingAuth({
state: 'login-scene',
success: (res) => {
console.log('授权成功', res.authCode, res.state)
},
fail: (res) => {
console.log('授权失败', res.errCode, res.errMsg)
},
complete: (res) => {
console.log('授权结束', JSON.stringify(res))
}
})
登录成功后,可从 res.authCode 中拿到授权码,再由你的服务端完成换取用户信息或业务登录态。
检测客户端与能力
const installed = checkDingClientInstalled()
const shareReady = checkDingShareReady()
const capability = queryDingCapabilities()
console.log('是否安装钉钉', installed)
console.log('是否具备分享能力', shareReady)
console.log('能力详情', JSON.stringify(capability))
Harmony 平台下,queryDingCapabilities() 会明确返回 base64 图片与网络图片为 false,便于你在界面上提前做按钮禁用或能力提示。
文本分享
sendDingText({
text: '这是一条来自 laoqianjunzi-ding 的文本消息',
success: (res) => {
console.log('文本分享成功', JSON.stringify(res))
},
fail: (res) => {
console.log('文本分享失败', JSON.stringify(res))
}
})
本地图片分享
sendDingLocalImage({
filePath: '/storage/emulated/0/Download/demo.png',
success: (res) => {
console.log('本地图片分享成功', JSON.stringify(res))
},
fail: (res) => {
console.log('本地图片分享失败', JSON.stringify(res))
}
})
base64 图片分享
sendDingBase64Image({
base64Payload: 'data:image/png;base64,iVBORw0KGgoAAA...',
success: (res) => {
console.log('base64 图片分享成功', JSON.stringify(res))
},
fail: (res) => {
console.log('base64 图片分享失败', JSON.stringify(res))
}
})
Harmony 平台调用该方法会直接返回失败结果,不会导致编译错误。
网络图片分享
sendDingRemoteImage({
imageUrl: 'https://example.com/poster.png',
success: (res) => {
console.log('网络图片分享成功', JSON.stringify(res))
},
fail: (res) => {
console.log('网络图片分享失败', JSON.stringify(res))
}
})
网页卡片分享
sendDingLink({
linkUrl: 'https://example.com/article',
title: '这是网页卡片标题',
summary: '这是网页卡片简介',
thumbnailUrl: 'https://example.com/thumb.png',
success: (res) => {
console.log('网页卡片分享成功', JSON.stringify(res))
},
fail: (res) => {
console.log('网页卡片分享失败', JSON.stringify(res))
}
})
返回结果说明
授权结果
type LqjzDingAuthResult = {
errCode : number,
errMsg : string,
authCode : string | null,
state : string | null,
authChannel : string | null
}
分享结果
type LqjzDingShareResult = {
errCode : number,
errMsg : string,
shareScene : string | null
}
常见返回约定:
errCode = 0:表示调用成功errCode = 1001:插件尚未完成初始化errCode = 1002:入参不完整或格式不合法errCode = 1003:当前平台不支持该能力errCode = 1004:原生 SDK 调用失败或回调异常errCode = 1005:可扩展为“客户端未安装”的业务判断码
接入建议
- 在应用启动阶段调用一次
setupLaoqianjunziDing - 登录按钮点击前先调用
checkDingClientInstalled()与queryDingCapabilities() - 分享入口根据
queryDingCapabilities()动态展示支持的按钮 - 服务端使用
authCode换取业务登录态,不要在客户端直接拼接鉴权逻辑
已知说明
- Web 与微信小程序端当前仅提供占位实现,用于保证跨端工程编译通过
- Harmony 平台暂不提供 base64 图片分享与网络图片分享
- iOS 必须正确配置 URL Scheme,否则无法收到授权回调

收藏人数:
https://gitee.com/laoqianjunzi/laoqianjunzi-ding
下载插件并导入HBuilderX
下载示例项目ZIP
赞赏(0)
下载 1127
赞赏 2
下载 11555168
赞赏 1904
赞赏
京公网安备:11010802035340号