建议先看官方文档 help.aliyun.com/knowledge_d…
准备工作不多说了,下面说下接入的过程中需要注意的点
开发环境搭建:注意这一句使用弹窗模式必须添加!!!
<!--联通电信授权页-->
<activity
android:name="com.mobile.auth.gatewayauth.LoginAuthActivity"
android:configChanges="orientation|keyboardHidden|screenSize"
android:exported="false"
android:theme="@style/authsdk_activity_dialog" 使用弹窗模式必须添加!!!
android:launchMode="singleTop" />
<!--协议页面webview-->
<activity
android:name="com.mobile.auth.gatewayauth.activity.AuthWebVeiwActivity"
android:configChanges="orientation|keyboardHidden|screenSize"
android:exported="false"
android:launchMode="singleTop"
android:screenOrientation="behind" />
<!--移动授权页-->
<activity
android:name="com.cmic.sso.sdk.activity.LoginAuthActivity"
android:configChanges="orientation|keyboardHidden|screenSize"
android:exported="false"
android:launchMode="singleTop" />
代码调用顺序
/*
* 1.初始化获取token实例
*/
mTokenListener = new TokenResultListener() {}
/*
* 2.初始化SDK实例
*/
mAlicomAuthHelper = PhoneNumberAuthHelper.getInstance(context, mToke nListener);
/*
* 3.设置SDK秘钥
*/
mAlicomAuthHelper.setAuthSDKInfo();
/*
* 4.检测终端⽹络环境是否⽀持⼀键登录或者号码认证,根据回调结果确定是否可以使⽤⼀ 键登录功能
*/
mAlicomAuthHelper.checkEnvAvailable(PhoneNumberAuthHelper#SERVICE_TY PE_LOGIN);
/*
* 5.若步骤4返回true,则根据业务情况,调⽤预取号或者⼀键登录接⼝
* 详⻅demo接⼊⼯程
*/
mAlicomAuthHelper.getLoginToken(context, 5000);
自定义布局:sdk提供的方法不太友好,需要细心一点,用的时候需要对照文档在代码里面设置,设置控件的相对位置时只能通过设置距离上下左右的dp值
要想成功进入授权页面还需要:
1.检测是否有插入sim卡 2.检测蜂窝网络开关是否开启 3.SIM能否欠费,是否可以蜂窝网络上网。 4.Android 国内某些厂商的系统,wifi 网络权限与移动网络权限是分开管理的,检测APP是否仅仅只有WLAN 网络权限,而移动蜂窝网络权限缺失。 5.⼿机⽹络是否连接了代理。 6.⼿机是否被root。
内存泄漏问题:
Toast内存泄漏 协议没勾选点击⼀键登录按钮显示Toast,退出授权⻚⻚出现内存泄漏。解决办法是 AuthUIConfig.setLogBtnToastHidden(true)隐藏默认Toast,根据点击事件的code⾃⼰显示 Toast即可。 ⻚⾯⾮法修改,当授权⻚号码栏、⼀键登录Button、协议栏出现重叠或者遮挡时点击⼀键登录按钮,显示Toast⻚ ⾯⾮法修改。解决办法,查看图层解决重叠即可。
TokenResultListener内存泄漏 sdk内部会持有外部设置进来的TokenResultListener,在⼀键登录功能使⽤完毕之后通过 PhoneNumberAuthHelper.setAuthListener(null)将回调置空即可。
未解决的问题:测试机wifi和电信流量同时开启的时候,进入不了授权页,但是 关闭wifi就可以。目前我的处理的方式如果进入不了手机号授权页就进入项目里的手机号登录页面,保证用户可以登录进入app