为什么要接入极光一键登入?
理由:用户无需输入手机号码,一键点击即可快速完成注册/登录流程,提高转化率优化用户体验。
应用场景
注册 登陆 二次验证
需要费用?
需要
开发文档地址
https://www.jpush.cn/identify
开发步骤:
1.配置环境
登入极光网站,点击设置选择认证设置
在认证设置下,先在集成设置里,填写应用包名和应用签名;然后在一键登入里填入RSA 加密公钥
2.按照极光一键登入文档接入
地址:http://docs.jiguang.cn/jverification/client/android_guide/
2.1 确认 android studio 的 Project 根目录的主 gradle 中配置了 jcenter 支持。(新建 project 默认配置就支持)
buildscript {
repositories {
jcenter()
}
…
}
allprojects {
repositories {
jcenter()
}
}
2.2在 module 的 gradle 中添加依赖和 AndroidManifest 的替换变量
android {
…
defaultConfig {
applicationId “com.xxx.xxx” // 您应用的包名.
…
ndk {
//选择要添加的对应 cpu 类型的 .so 库。
abiFilters 'armeabi', 'armeabi-v7a', 'arm64-v8a'
// 还可以添加 'x86', 'x86_64'
}
manifestPlaceholders = [
JPUSH_PKGNAME : applicationId,
JPUSH_APPKEY : "你的 Appkey ", //Portal上注册的包名对应的 appKey.
JPUSH_CHANNEL : "developer-default", //暂时填写默认值即可.
]
......
}
......
}
dependencies {
implementation ‘cn.jiguang.sdk:jverification:2.6.4’
implementation ‘cn.jiguang.sdk:jcore:2.6.0’
}
2.3 看极光Android SDK API开发
2.3.1在application下调用极光一键登入的初始化方法
JVerificationInterface.init(this, 10000, new RequestCallback() {
@Override
public void onResult(int code, String msg) {
if (code == 8000) {
Constant.initSuccess = true;
} else {
Constant.initSuccess = false;
}
}
});
2.3.2.写调用一键登入的方法
public static void oneKeyLogin(final Activity activity) {
//判断2秒内是不是连续点击
if (Util.FastClick()) {
Toast.makeText(activity, “请稍后点击”, Toast.LENGTH_LONG).show();
return;
}
try {
//先判断有没有获取读取手机号码状态权限
if (android.os.Build.VERSION.SDK_INT >= android.os.Build.VERSION_CODES.M) {
if (activity.checkSelfPermission(Manifest.permission.READ_PHONE_STATE) != PackageManager.PERMISSION_GRANTED) {
Toast.makeText(activity, "请到设置界面获取获取手机号状态权限", Toast.LENGTH_LONG).show();
checkPermissions(Constant.PHONE_STATE, , PermissionsUtil.READ_PHONE_STATE;
}
return;
}
}
//如果一键登入初始化失败,跳转到账号密码登入界面
if (!JVerificationInterface.isInitSuccess() && !Constant.initSuccess) {
LoginActivity.start(activity);
return;
}
//判断之前有没有登人(登入后讲token保存到本地,退出登入和顶号通知时,清空token)
if (TextUtils.isEmpty(LoginHelper.get().getToken())) {
//当前网络环境不支持一键登入,跳转到账号密码登入界面
if (!JVerificationInterface.checkVerifyEnable(activity)) {
LoginActivity.start(activity);
return;
}
//显示正在加载中菊花提示动画
if (null != (BaseActivity) activity) {
((BaseActivity) activity).loadProgress();
}
//调起一键登入授权界面
final LoginSettings settings = new LoginSettings();
settings.setAutoFinish(true);//设置登录完成后是否自动关闭授权页
settings.setTimeout(30 * 1000);//设置超时时间,单位毫秒。 合法范围(0,30000],范围以外默认设置为10000
settings.setAuthPageEventListener(new AuthPageEventListener() {
@Override
public void onEvent(int cmd, Str