更新记录

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-androidapp-iosapp-harmony 的原生接入实现;webmp-weixin 提供可编译占位实现,调用时会返回“不支持当前平台”的结果对象,避免编译报错。

平台能力说明

平台 授权登录 安装检测 文本分享 本地图片 base64 图片 网络图片 网页卡片
Android App 支持 支持 支持 支持 支持 支持 支持
iOS App 支持 支持 支持 支持 支持 支持 支持
Harmony App 支持 支持 支持 支持 不支持 不支持 支持
Web 占位 占位 占位 占位 占位 占位 占位
微信小程序 占位 占位 占位 占位 占位 占位 占位

安装后需要配置的内容

Android

插件已内置 Android 依赖与回调 Activity 声明,常规情况下无需额外补 manifest。打包前请确认:

  • 钉钉开放平台应用已创建
  • clientIdredirectUri 准备完成
  • 业务后端已配置好用 authCode 换取登录态的接口

iOS

请修改 uni_modules/laoqianjunzi-ding/utssdk/app-ios/Info.plist 中的占位值:

  • LqjzDingClientId
  • CFBundleURLSchemes 中的钉钉 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 ID
  • redirectUri:钉钉授权回调域名
  • scope:默认授权范围,通常使用 openid
  • state:默认业务状态值
  • prompt:授权确认模式,常用值是 consent
  • iosBundleId: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:可扩展为“客户端未安装”的业务判断码

接入建议

  1. 在应用启动阶段调用一次 setupLaoqianjunziDing
  2. 登录按钮点击前先调用 checkDingClientInstalled()queryDingCapabilities()
  3. 分享入口根据 queryDingCapabilities() 动态展示支持的按钮
  4. 服务端使用 authCode 换取业务登录态,不要在客户端直接拼接鉴权逻辑

已知说明

  • Web 与微信小程序端当前仅提供占位实现,用于保证跨端工程编译通过
  • Harmony 平台暂不提供 base64 图片分享与网络图片分享
  • iOS 必须正确配置 URL Scheme,否则无法收到授权回调

隐私、权限声明

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

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

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

许可协议

MIT协议

暂无用户评论。