极光一键登录

准备工作:

极光jiguang.cn)

1、极光平台注册一个App,获取到APP_ID。

2、在Android Studio生成签名文件。

3、在moudle模块下的build.gradle文件下:添加以下内容

plugins {
    id 'com.android.application'
}

android {
    buildTypes {
        debug {
            debuggable true
        }
    }

    signingConfigs {
        debug {
            storeFile file('../keystore/a.keystore')
            storePassword '123456'
            keyAlias 'key'
            keyPassword '123456'
        }
    }
    namespace '包名'//改为自己的包名
    compileSdk 33

    defaultConfig {
        applicationId "包名"//改为自己的包名
        minSdk 21
        targetSdk 31
        versionCode 1
        versionName "1.0"
        ndk {
            // 设置支持的SO库架构
            abiFilters 'armeabi' , 'x86', 'armeabi-v7a', 'x86_64', 'arm64-v8a'
        }

        testInstrumentationRunner "androidx.test.runner.AndroidJUnitRunner"
        manifestPlaceholders = [
        // JPUSH_PKGNAME:设置应用程序的包名,通常使用 Gradle 构建脚本中的 applicationId。
        JPUSH_PKGNAME : applicationId,
        
        // JPUSH_APPKEY:设置极光推送的应用程序密钥(appKey)。这通常是在极光 Portal 上注册的应用程序包名对应的 appKey。
        JPUSH_APPKEY : "e4812b60330413fbdaaef831",
    
        // JPUSH_CHANNEL:设置应用程序的渠道信息。通常可以填写默认值。
        JPUSH_CHANNEL : "developer-default"
]
    }

    buildTypes {
        release {
            minifyEnabled false
            proguardFiles getDefaultProguardFile('proguard-android-optimize.txt'), 'proguard-rules.pro'
        }
    }
    compileOptions {
        sourceCompatibility JavaVersion.VERSION_1_8
        targetCompatibility JavaVersion.VERSION_1_8
    }
}

dependencies {
    implementation 'androidx.appcompat:appcompat:1.4.1'
    implementation 'com.google.android.material:material:1.5.0'
    implementation 'androidx.constraintlayout:constraintlayout:2.1.3'
    implementation 'cn.jiguang.sdk:jverification:3.0.0'//极光SDK
    testImplementation 'junit:junit:4.13.2'
    androidTestImplementation 'androidx.test.ext:junit:1.1.3'
    androidTestImplementation 'androidx.test.espresso:espresso-core:3.4.0'
}
正文:
一、导入依赖
implementation 'cn.jiguang.sdk:jverification:3.0.0'//极光SDK
二、在MyApplication中添加一下内容,没有MyApplication则自己创建一个

注意:别忘了在AndroidManifest清单文件设置下:(android:name=".MyApplication")

public class MyApplication extends Application {

    private Context context;

    @Override
    public void onCreate() {
        super.onCreate();
        context = this;
        // 初始化 JVerification,用于集成极光认证(JVerification)服务。
        JVerificationInterface.init(context);
        // 设置 JVerification 的调试模式,用于调试和日志记录。在正式发布应用程序时,通常将其设置为 false。
        JVerificationInterface.setDebugMode(true);
        // 初始化 JVerification 配置,设置参数:
        // - context:传入当前上下文。
        // - 5000:设置超时时间,单位为毫秒。
        // - RequestCallback<String>:用于处理初始化结果的回调接口,其中 String 参数为结果消息。
        JVerificationInterface.init(context, 5000, new RequestCallback<String>() {
            @Override
            public void onResult(int code, String msg) {
                // 处理初始化结果的回调函数,其中 code 表示初始化结果的状态码,msg 包含初始化的详细信息。
                // 通常,code = 8000 表示配置初始化成功。
                Log.d("TAG", "code = " + code + ", msg = " + msg);
            }
        });
    }
}
三、MainActivity实现
public class MainActivity extends AppCompatActivity {

    private Button loginBtn;

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
        loginBtn = findViewById(R.id.login);
        loginBtn.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View view) {
                // 创建一个 JVerifyUIConfig.Builder 实例,用于配置 UI 样式
                JVerifyUIConfig.Builder builder = new JVerifyUIConfig.Builder();
                // 设置登录页面的 Logo 图标路径,这里使用 R.drawable.qqwweerr 作为 Logo 图标
                // 注意:您可能需要使用 ContextCompat.getDrawable() 获取 Drawable 资源
                builder.setLogoImgPath(String.valueOf(R.drawable.ic_launcher_background));
                // 设置 Logo 图标的高度和宽度
                builder.setLogoHeight(100);
                builder.setLogoWidth(100);
                // 设置隐私协议布局的左边距
                builder.setPrivacyMarginL(50);
                // 设置是否隐藏 Logo 图标
                builder.setLogoHidden(false);
                // 构建 JVerifyUIConfig 配置对象
                JVerifyUIConfig uiConfig = builder.build();
                // 使用 JVerificationInterface 设置自定义的 UI 样式配置
                JVerificationInterface.setCustomUIWithConfig(uiConfig);
                // 使用 JVerificationInterface 的 checkVerifyEnable 方法来检查当前环境是否允许进行验证操作(例如手机短信验证码验证)。
                // 检查条件包括:
                // 1. 是否有可用的 SIM 卡,因为验证通常需要使用 SIM 卡发送短信验证码。
                // 2. 是否有可用的网络连接(例如,Wi-Fi 或移动数据连接),因为验证需要与服务器进行通信。
                // 3. 是否已授予电话权限,因为验证可能需要读取电话状态以处理来电和短信。
                // 4. 是否已授予读取联系人权限,因为验证可能需要读取联系人信息以填充一些信息。
                // 5. 是否已授予读取短信权限,因为验证通常需要读取接收到的短信以提取验证码信息。
                // JVerificationInterface.checkVerifyEnable(getApplicationContext()) 返回一个布尔值,指示当前环境是否满足上述条件。
                // 如果返回 true,则表示可以进行验证操作。
                // 如果返回 false,则表示不满足验证条件,可能需要用户采取一些措施来满足这些条件(例如插入 SIM 卡、打开网络连接或授予权限)。
                boolean verifyEnable = JVerificationInterface.checkVerifyEnable(getApplicationContext());
                // 使用 JVerificationInterface.loginAuth 方法触发登录认证操作,允许用户登录并进行身份验证。
                // 参数说明:
                // - this:传入当前上下文。
                // - true:表示启用一键登录,false 表示不使用一键登录。
                // - VerifyListener:用于处理认证结果的回调接口。
                //   - code:认证结果码,用于表示认证的状态,例如 6000 表示认证成功。
                //   - content:认证结果消息,包含有关认证状态的详细信息。
                //   - operator:运营商信息,表示当前认证所使用的运营商。
                //   - 在回调中,根据 code 的值可以执行不同的操作,例如处理成功或失败的情况。
                JVerificationInterface.loginAuth(MainActivity.this, true, new VerifyListener() {
                    @Override
                    public void onResult(int code, String content, String operator) {
                        Log.d("TAG", "[" + code + "] loginAuth message=" + content + ", operator=" + operator);
                        if (code == 6000) {
                            // 处理认证成功的情况
                            Toast.makeText(MainActivity.this, "登录成功", Toast.LENGTH_SHORT).show();
                        } else {
                            // 处理认证失败的情况
                            Toast.makeText(MainActivity.this, "认证失败,请重试", Toast.LENGTH_SHORT).show();
                        }
                    }
                }, new AuthPageEventListener() {
                    @Override
                    public void onEvent(int cmd, String msg) {
                        // AuthPageEventListener 是用于监听认证页面事件的抽象类。
                        // 在认证页面事件发生时,会触发此方法的回调。
                        // 参数说明:
                        // - cmd:事件命令,表示发生的具体事件,可以根据不同的命令执行不同的操作。
                        // - msg:事件消息,包含有关事件的详细信息。
                        Log.d("TAG", "[onEvent]. [" + cmd + "] message=" + msg);
                    }
                });
            }
        });
    }
}
四、效果图

  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
为了在uniapp中接入极光一键登录,需要进行以下步骤: 1.在极光官网注册并创建应用,获取AppKey和AppSecret。 2.在uniapp项目中安装jpush插件,可以使用以下命令进行安装: ```shell npm install jpush-uniapp --save ``` 3.在App.vue文件中引入jpush插件并初始化: ```javascript import JPush from 'jpush-uniapp' export default { onLaunch: function() { JPush.init() } } ``` 4.在需要使用一键登录的页面中,调用jpush插件的login方法: ```javascript import JPush from 'jpush-uniapp' JPush.login({ appKey: 'yourAppKey', authPageConfig: { authLoginPage: 'yourAuthLoginPage', authLogo: 'yourAuthLogo', authNavHidden: true, authStatusBarHidden: true, authCustom: { privacyOne: ['yourPrivacyUrl1', 'yourPrivacyTitle1'], privacyTwo: ['yourPrivacyUrl2', 'yourPrivacyTitle2'] } } }, (res) => { console.log(res) }) ``` 其中,appKey为在极光官网创建应用时获取的AppKey,authPageConfig为一键登录页面的配置信息,包括登录页、logo、隐私协议等。 5.在Android平台上,需要在AndroidManifest.xml文件中添加以下权限: ```xml <uses-permission android:name="android.permission.READ_PHONE_STATE" /> ``` 6.在iOS平台上,需要在Info.plist文件中添加以下权限: ```xml <key>NSPhotoLibraryUsageDescription</key> <string>需要您的同意,才能访问相册</string> <key>NSCameraUsageDescription</key> <string>需要您的同意,才能访问相机</string> <key>NSMicrophoneUsageDescription</key> <string>需要您的同意,才能访问麦克风</string> <key>NSContactsUsageDescription</key> <string>需要您的同意,才能访问通讯录</string> <key>NSLocationWhenInUseUsageDescription</key> <string>需要您的同意,才能访问位置</string> <key>NSLocationAlwaysUsageDescription</key> <string>需要您的同意,才能访问位置</string> <key>NSLocationAlwaysAndWhenInUseUsageDescription</key> <string>需要您的同意,才能访问位置</string> ```

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值