更新记录

1.1.2(2023-03-30)

修改无法拉起授权回调问题

1.1.1(2023-03-20)

修改iOS端上架初步审核不通过bug

1.1.0(2023-03-09)

添加钉钉分享功能

查看更多

平台兼容性

Android Android CPU类型 iOS
适用版本区间:5.0 - 11.0 armeabi-v7a:未测试,arm64-v8a:未测试,x86:未测试 ×

原生插件通用使用流程:

  1. 购买插件,选择该插件绑定的项目。
  2. 在HBuilderX里找到项目,在manifest的app原生插件配置中勾选模块,如需要填写参数则参考插件作者的文档添加。
  3. 根据插件作者的提供的文档开发代码,在代码中引用插件,调用插件功能。
  4. 打包自定义基座,选择插件,得到自定义基座,然后运行时选择自定义基座,进行log输出测试。
  5. 开发完毕后正式云打包

付费原生插件目前不支持离线打包。
Android 离线打包原生插件另见文档 https://nativesupport.dcloud.net.cn/NativePlugin/offline_package/android
iOS 离线打包原生插件另见文档 https://nativesupport.dcloud.net.cn/NativePlugin/offline_package/ios

注意事项:使用HBuilderX2.7.14以下版本,如果同一插件且同一appid下购买并绑定了多个包名,提交云打包界面提示包名绑定不一致时,需要在HBuilderX项目中manifest.json->“App原生插件配置”->”云端插件“列表中删除该插件重新选择


体验APK下载地址:https://gitee.com/peak_3_0_admin/dingdign-apk.git

一、功能

判断APP是否安装钉钉,是否授权钉钉登录,拉起钉钉登录授权,是否支持分享到好友,是否支持分享到Ding,分享到好友-文本分享,分享到好友-图片分享,分享到好友-链接分享

二、使用示例 Android端


<script>
    // 1.引入插件
    var testModule = uni.requireNativePlugin("W-DDModule-DD")
    var globalEvent = uni.requireNativePlugin('globalEvent')
    export default {
        // 2.使用插件
        methods:{
            isInstallDD(){
                // 2.1判断手机是否安装钉钉
                uni.showModal({
                    content: '是否安装钉钉==' + testModule.isInstallDD(),
                })
            },
            isLoginDD(){
                // 2.2判断手机安装的钉钉的版本是否支持授权
                uni.showModal({
                    content: '是否支持登录授权==' + testModule.isLoginDD(),
                })
            },
            loginDD(){
                // 2.3拉起钉钉登录授权获取code
                testModule.loginDD((res) => {
                    uni.showToast({
                        title: '拉起钉钉登录授权获取code===》' + JSON.stringify(res),
                        icon: "none"
                    })
                })
            },
            // 是否支持分享到好友
            isDDSupportAPI(){
                uni.showModal({
                    content: '是否支持分享到好友==' + testModule.isDDSupportAPI(),
                })
            },
            // 是否支持分享到Ding
            isDDSupportDingAPI(){
                uni.showModal({
                    content: '是否支持分享到Ding==' + testModule.isDDSupportDingAPI(),
                })
            },
            // 分享到好友-文本分享
            sendFriendText() {
                testModule.sendFriendText({
                    'title': '分享到好友-文本分享---标题',
                }, (res) => {
                    uni.showToast({
                        title: '回调===》' + JSON.stringify(res),
                        icon: "none"
                    })
                })
            },
            // 分享到好友-图片分享
            sendFriendImage() {
                testModule.sendFriendImage({
                    'picUrl': 'https://img-download.pchome.net/download/1k1/ut/5a/ouzdgm-1dzc.jpg', //分享到好友-图片分享---分享图片的URL
                }, (res) => {
                    uni.showToast({
                        title: '回调===》' + JSON.stringify(res),
                        icon: "none"
                    })
                })
            },
            // 分享到好友-链接分享
            sendFriendLink() {
                testModule.sendFriendLink({
                    'title': '分享到好友-链接分享---标题', //分享到好友-链接分享---标题
                    'url': 'http://www.baidu.com', //分享到好友-链接分享---链接地址
                    'picUrl': 'http://static.dingtalk.com/media/lAHPBY0V4shLSVDMlszw_240_150.gif', //分享到好友-链接分享---logo
                }, (res) => {
                    uni.showToast({
                        title: '回调===》' + JSON.stringify(res),
                        icon: "none"
                    })
                })
            },
            sendDingText() {
                testModule.sendDingText({
                    'title': '分享到Ding-文本分享---标题',
                }, (res) => {
                    uni.showToast({
                        title: '回调===》' + JSON.stringify(res),
                        icon: "none"
                    })
                })
            },
            sendDingImage() {
                testModule.sendDingImage({
                    'picUrl': 'https://img-download.pchome.net/download/1k1/ut/5a/ouzdgm-1dzc.jpg', //分享到Ding-图片分享---分享图片的URL
                }, (res) => {
                    uni.showToast({
                        title: '回调===》' + JSON.stringify(res),
                        icon: "none"
                    })
                })
            },
            sendDingLink() {
                testModule.sendDingLink({
                    'title': '分享到Ding-链接分享---标题', //分享到Ding-链接分享---标题
                    'url': 'http://www.baidu.com', //分享到Ding-链接分享---链接地址
                    'picUrl': 'http://static.dingtalk.com/media/lAHPBY0V4shLSVDMlszw_240_150.gif', //分享到Ding-链接分享---logo
                }, (res) => {
                    uni.showToast({
                        title: '回调===》' + JSON.stringify(res),
                        icon: "none"
                    })
                })
            },
        }
    }
</script>

备注: 此插件使用的钉钉SDK为1.1.0版本

前端请参考此文档: 
https://open.dingtalk.com/document/mobile-app-guide/android-platform-application-authorization-login-access
后端根据获取的code返回用户数据请参考此网址: 
https://open.dingtalk.com/document/orgapp/obtain-the-user-information-based-on-the-sns-temporary-authorization

插件使用流程(以下数据仅测试时使用):
1.参考此文档‘https://open.dingtalk.com/document/mobile-app-guide/android-platform-application-authorization-login-access’对钉钉官网进行相应配置
    包名:com.xxx.xxx
    签名:打包完成后自己生成
2.引入插件,使用插件,参考以上Android与iOS的使用文档,配置manifest.json,‘原生插件配置’选择插件,配置内容如下:
    钉钉的AppKey(Android):dingl****************
3.打包,包名配置为:com.xxx.xxx
4.生成签名,填写到钉钉官网对应处

服务器端


    @RequestMapping("/getuserinfo_bycode")
    public Object getUsernfoByCode(@RequestBody String body) throws ApiException{
        String code = JacksonUtil.parseString(body, "code");
        DefaultDingTalkClient  client = new DefaultDingTalkClient("https://oapi.dingtalk.com/sns/getuserinfo_bycode");
        OapiSnsGetuserinfoBycodeRequest req = new OapiSnsGetuserinfoBycodeRequest();
        req.setTmpAuthCode(code);
        OapiSnsGetuserinfoBycodeResponse response = client.execute(req,"钉钉官网的AppKey","钉钉官网的AppSecret");
        // TODO 自己的逻辑
        return ResponseUtil.success(ResultCode.INSERT_SUCCESS);
    }

    <dependency>
        <groupId>com.aliyun</groupId>
        <artifactId>alibaba-dingtalk-service-sdk</artifactId>
        <version>2.0.0</version>
    </dependency>

注意:

钉钉官网从安全的角度考虑,不支持动态变更包名。使用本插件打包时的包名需要与开发插件时的包名相同,否则没法拉起回调,不能使用

如需购买使用此插件请联系开发者,vx:wayazh

隐私、权限声明

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

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

插件使用的 钉钉 SDK会采集个人信息数据,用户点击授权后,钉钉客户端会被拉起,跳转至授权界面,用户在该界面点击允许或取消,SDK通过SendAuth的Resp返回数据给调用方。服务端通过Code调用sns/getuserinfo_bycode接口获取授权用户的个人信息,详情可参考:https://open.dingtalk.com/document/isvapp-server/obtain-the-user-information-based-on-the-sns-temporary-authorization

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

暂无

使用中有什么不明白的地方,就向插件作者提问吧~ 我要提问