项目中的一键登录整理

本文介绍了项目中实现一键登录的详细过程,包括使用极光一键登录的配置,如混淆规则的设置,以及在点击登录按钮时利用透明SignActivity承载CtLoginActivity的思路。此外,还讨论了如何在登录成功后根据需要返回原来的界面,提供了相应的代码示例。
摘要由CSDN通过智能技术生成
项目中的一键登录整理
  • 效果图

    • 在这里插入图片描述
  • 极光一键登录

    • 运行提供 demo,手动导入一些 jar

      • 在这里插入图片描述
    • 加入了一些混淆

      • -dontoptimize
        -dontpreverify

        -dontwarn cn.jpush.**
        -keep class cn.jpush.** { ; }
        -dontwarn cn.jiguang.
        *
        -keep class cn.jiguang.** { ; }
        -dontwarn com.cmic.
        *
        -keep class com.cmic.** { ; }
        -dontwarn com.unicom.
        *
        -keep class com.unicom.** { ; }
        -dontwarn cn.com.chinatelecom.
        *
        -keep class cn.com.chinatelecom.** { *; }

  • 思路

    • 点击按钮登录时,用一个 透明 的 SignActivity 来 承载 极光创建的 CtLoginActivity,并手动的关闭 CtLoginActivity
    • 有一些比如在文章详情页登录,登录后还需显示原来界面,可通过在application中设置一些字段,用于判断是否需要在执行MainActivity后,继续跳转
  • 代码如下

<!-- 设置主题为透明 xml中不能和portrait 混用,Android 8.0 会出现问题 -->
<activity
    android:name=".activity.login_onekey.SignActivityV1"
    android:launchMode="singleTask"
    android:theme="@style/loginTheme"
    />
<!-- 一键登录主题 -->
<style name="loginTheme" parent="@style/Theme.AppCompat.Light.NoActionBar">
    <item name="android:windowBackground">@color/transparent</item>
    <item name="android:windowIsTranslucent">true</item>
    <item name="android:windowNoTitle">true</item>
    <item name="android:windowActionBar">false</item>
    <item name="android:windowFullscreen">true</item>
    <item name="android:windowContentOverlay">@null</item>
</style>
public class SignActivityV1 extends NormalActivity {

	 @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        try {
            //设置坚屏 一定要放到try catch里面,否则会崩溃
            setRequestedOrientation(ActivityInfo.SCREEN_ORIENTATION_PORTRAIT);
        } catch (Exception e) {
        }

		//检查 当前网络环境不支持认证,不支持去验证码登录
        if(!checkYiJianLogin()){
                finish();
                SignActivity.startLogin(this, SignActivity.LOGIN);
                return;
            }

		//因为有很多细节的地方一键登录,在这里面做了快速点击判断
        if (DoubleClickUtils.isFastDoubleClick()) {
       		 return;
        }
        
         if (this != null) {
         	//显示加载Dialog
            showProgressDialogByZL();
            //设置一键授权的展示样式
            setUIConfig(this);
            //获取号码认证的token
            JVerificationInterface.getToken(this, 5000, new VerifyListener() {
                @Override
                public void onResult(int code, String content, String operator) {
                    //2008  正在获取token中,稍后再试
                    Log.e("tag", "code= " + code + " token=" + content + ", operator=" + operator);
                    if (code == FETCH_TOKEN_SUCCESS) {
                        toGetYuYueCode(SignActivityV1.this);
                    } else {
                        //关闭Dialog
                        hideProgressDialogByZL();
                        finish();
                        SignActivity.startLogin(SignActivityV1.this, SignActivity.LOGIN);
                    }
                }
            });
        }
	}
	
	
	
    private void toGetYuYueCode(NormalActivity activity) {
        JVerificationInterface.preLogin(activity, 3000, (code, content) -> {
            hideProgressDialogByZL();
            //7000 表示成功
      
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值