IT数码 购物 网址 头条 软件 日历 阅读 图书馆
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
图片批量下载器
↓批量下载图片,美女图库↓
图片自动播放器
↓图片自动播放器↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁
 
   -> 移动开发 -> Android 钉钉第三方登录问题 -> 正文阅读

[移动开发]Android 钉钉第三方登录问题

使用钉钉第三方登录

第一步 去钉钉开发者平台注册App

钉钉开发者平台地址
在这里插入图片描述
注册自己的应用
*获取到自己的AppId 和 AppKey

钉钉开发者文档

在这里插入图片描述

实现步骤

1、注入依赖


	 implementation 'com.aliyun.ams:alicloud-android-push:3.2.+'

2、在您的包名相应目录下新建一个ddshare。


需要注意的是名字一定要相同

然后在AndroidManifest文件中添加exported属性,设置为true。

<activity
            android:exported="true"
            android:theme="@android:style/Theme.Translucent.NoTitleBar"
            android:launchMode="singleInstance"
            android:name="xxx.xxxx.xxxx.ddshare.DDShareActivity">
</activity>
换成你自己的路径名字

/**
*  注意   BToast.showText(); 是我自己封装的Toast
* 	      Logger也是一个封装   可以改成Log
*
*/

public class DDShareActivity extends Activity implements IDDAPIEventHandler {

    private IDDShareApi mIDDShareApi;

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        Log.d("lzc", "onCreate==========>");
        EventBusManager.getInstance().register(this);
        try {
            //activity的export为true,try起来,防止第三方拒绝服务攻击
            mIDDShareApi = DDShareApiFactory.createDDShareApi(this,
                   "放入你的AppId",
                    true);
            mIDDShareApi.handleIntent(getIntent(), this);

//            sendAuth();
        } catch (Exception e) {
            e.printStackTrace();
            Log.d("lzc", "错误信息===========>" + e.toString());
        }
    }

    @Override
    public void onReq(BaseReq baseReq) {
        Log.d("lzc", "onReq=============>");
    }

    @Override
    public void onResp(BaseResp baseResp) {
        int errCode = baseResp.mErrCode;
        Log.d("lzc", "errorCode==========>" + errCode);
        String errMsg = baseResp.mErrStr;
        Log.d("lzc", "errMsg==========>" + errMsg);

        if (baseResp.getType() == ShareConstant.COMMAND_SENDAUTH_V2 && (baseResp instanceof SendAuth.Resp)) {
            SendAuth.Resp authResp = (SendAuth.Resp) baseResp;
            switch (errCode) {
                case BaseResp.ErrCode.ERR_OK:
                   Logger.d( "授权成功");
                  	//authResp.code就是返回的授权码
                  	//传回到你自己的页面
                    break;
                case BaseResp.ErrCode.ERR_USER_CANCEL:
                    BToast.showText(this, "授权取消");
                    break;
                default:
                        BToast.showText(this, "登录失败" + baseResp.mErrStr);
                    break;
            }
        } else {
            switch (errCode) {
                case BaseResp.ErrCode.ERR_OK:
                    BToast.showText(this, "分享成功");
                    break;
                case BaseResp.ErrCode.ERR_USER_CANCEL:
                    BToast.showText(this, "分享取消");
                    break;
                default:
                        BToast.showText(this, "分享失败" + baseResp.mErrStr);
                    break;
            }
        }

        finish();
    }
}

3、调起钉钉登录的方式


    IDDShareApi    iddShareApi = DDShareApiFactory.createDDShareApi(LoginActivity.this, appKey, true);
    if (!isInstalled) {
            showToast("请安装钉钉");
            return;
        }
        SendAuth.Req req = new SendAuth.Req();
        boolean isSupport = req.getSupportVersion() <= iddShareApi.getDDSupportAPI();
        if (!isSupport) {
            showToast("不支持登录授权");
            return;
        }
        req.scope = SendAuth.Req.SNS_LOGIN;
        if (req.getSupportVersion() > iddShareApi.getDDSupportAPI()) {
            showToast("钉钉版本过低,不支持登录授权");
            return;
        }
        iddShareApi.sendReq(req);
		

到这里也就是可以跑起来了

4、遇到的问题


	1、在Android 11版本的手机中明明安装了钉钉
		但是会弹出“请安装钉钉的问题”
		
		出现的原因:Android11 要检查下包的可见性
		解决方法:<uses-permission android:name="android.permission.QUERY_ALL_PACKAGES"/>
		缺点:可能上架会卡审核
	
	2、当跳转到钉钉授权的页面时,钉钉授权页面是空白的,弹出一个“出错了请重试”
		出现的原因:因为包名或者签名不对
		解决方法:查看安装的签名和包名是否和钉钉开发者平台的是否相同
		
  移动开发 最新文章
Vue3装载axios和element-ui
android adb cmd
【xcode】Xcode常用快捷键与技巧
Android开发中的线程池使用
Java 和 Android 的 Base64
Android 测试文字编码格式
微信小程序支付
安卓权限记录
知乎之自动养号
【Android Jetpack】DataStore
上一篇文章      下一篇文章      查看所有文章
加:2022-05-14 10:04:13  更:2022-05-14 10:05:01 
 
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁

360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年11日历 -2024/11/25 1:25:09-

图片自动播放器
↓图片自动播放器↓
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
图片批量下载器
↓批量下载图片,美女图库↓
  网站联系: qq:121756557 email:121756557@qq.com  IT数码