注册

【Android】一键登录 - 三大运营商

业务背景:


在条件允许的情况下(无 SIM 卡的手机,无法触发一键登录),通过运行商提供的服务,进行【一键登录】。简化用户的登录操作,提高 App 的登录注册率以及使用率。


本方案采用的是阿里云中【一键登录】方案。


效果图:



前提知识:



  • 整个流程如图所


(图源自网络[掘金大佬-NanBox],侵删)



  • 该方案下,不允许使用完全自定义的授权页。但是可以通过属性配置,进行一定的修改。可修改的属性如下图所示


Android 接入流程:


1.浅析 Demo


通常第一步都是下载官方 Demo 后,进行一番调试,盘点功能列表,是否符合自身需求。


链接:pan.baidu.com/s/1RX5yGp06… 提取码:qbx0


接下来,简单分析 Demo 项目架构,帮助大家尽快上手这个项目。


首先,我们要知道这个 Demo,是包括【一键登录】和【本机号码校验】两个功能。根据自己的需求分析对应的代码即可。这次我们只使用到前者,所以后者内容不在这里讲述。



主要看到下列三个模块:


Config - 就是上面预告知识中说到的配置项,主要是授权页的一些配置项


OneKeyLoginActivity - 登录页面


MessageActivity - 模拟【其他登录方式】页面


那具体的实现,就可以直接看对应模块的内容即可。可以在原 Demo,进行调试。


2.接入思路分析


基于判断是否支持【一键登录】的时机 提供两种接入思路


第一种:启动登录功能前判断



判断的方式可以通过


mPhoneNumberAuthHelper.checkEnvAvailable(PhoneNumberAuthHelper.SERVICE_TYPE_LOGIN)
复制代码

是否支持【一键登录】。该流程未经检验,大家可以执行验证。


第二种:直接唤起【一键登录】,失败后再唤起【其他登录方式】



Demo 也是第二种方式。这种方式需要用到一个壳 Activity 。但这个壳主要的作用是初始化SDK,以及做逻辑判断和处理(即并无实际内容展示)。


这里引发一个思考:


既然用不到 Activity 的内容,那能不能换种方式呢呢?对于单例,我思考后,一开始觉得是没问题的,但是等写完后,发现我写成了一个 OneKeyLoginHelper 的单例,发现相应逻辑处理需要传入 activity 或者 fragment 的引用。那么我们知道单例中是不能持有这样的引用的(这里可以考虑使用弱引用),这会导致内容泄漏。不知道是否还有其他的方法?


3.代码接入流程


//STEP 1.初始化监听器(这里根据业务自己做处理)


//STEP 2.初始化SDK实例


//STEP 3.设置SDK秘钥


//STEP 4.唤起一键登录页


4.避坑


接着,讲一下接入过程中,遇到的一些问题。帮大家避免无效劳动,可以有更多的时间学(hua )习(shui)。


问题描述: 因为选择了第二种思路,那么会有个壳 Activity 的问题。这个壳,我们不处理的话,是不透明的,这样当我们进到这个壳的时候,再跳转到别的页面就会有个空白页。


解决方案: 将壳的主题改为透明色,经过实验,下述代码可以实现。(壳Activity 需要继承 AppCompatActivity)


<style name="Theme.Transparent" parent="@style/Theme.AppCompat.DayNight.NoActionBar">
<item name="android:windowBackground">@android:color/transparent</item>
<item name="android:windowNoTitle">true</item>
<item name="android:windowIsFloating">true</item>
<item name="android:windowIsTranslucent">true</item>
<item name="android:windowContentOverlay">@null</item>
<item name="android:backgroundDimEnabled">false</item>
</style>

问题描述: 发现从【授权页】跳到【其他方式登录】的时候,授权页会逐渐变透明,会看到下一层页面的内容。如动图中,粉红色的箭头所示。



解决方案: 可以直接忽略,这个是 SDK 本身的问题。因为阿里那边给的回复是:(是否有最新解决方案,会及时更新,或者可以以你们当时咨询的为准)


作者:Quincy_Ye
链接:https://juejin.cn/post/7127836566084386852
来源:稀土掘金
著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。

0 个评论

要回复文章请先登录注册