闪信测试_h5本机号码一键登录

闪信测试_h5本机号码一键登录闪验、SDK、一键登录、号码认证、本机校验、快捷登录,新一代认证解决方案,让用户不再等待

官网文档地址:文档中心-创蓝云智

一.准备工作

概述

本文是闪验SDK_Android端接入文档,用于指导SDK的集成使用。在对接之前您需要花5-10分钟阅读以下条目,可减少对接过程中的问题。

  • 常见问题请移步至对接问题
  • 升级版本请移步至升级指南

合规性说明

1、您需要确保App有《隐私政策》,并且在用户首次启动App时就弹出《隐私政策》取得用户同意。

2、您务必告知用户您选择创蓝SDK服务,请在《隐私政策》中增加如下参考条款:
创蓝闪验SDK:上海璟梦信息科技有限公司

功能:用于实现App一键登录和验证用户手机号码与本机流量卡号是否一致的服务

收集个人信息的类型:设备信息、位置信息、网络信息、SDK认证相关请求结果、设备标识符(IMEI、IDFA、Android ID、MAC、OAID相关信息)、应用信息(应用崩溃信息、通知开关状态、软件列表等相关信息)、设备参数及系统信息(设备类型、设备型号、操作系统及硬件相关信息)

隐私政策链接:隐私政策

  • 第三方SDK

闪验SDK 同时集成了第三方SDK,使用本服务时需遵守相应协议,参考如下:

中国移动
收集信息名称:网络类型、网络地址、运营商类型、本机号码、手机设备类型、手机操作系统、硬件厂商
目的及其用途:识别⽤户的⼿机号码快速登录/号码校验,问题查询、分析、风险控制
信息处理方式:SDK自行采集
第三方主体:中移互联网有限公司

协议名称:《中国移动认证服务条款》
协议链接: 中国移动认证服务条款

中国联通
收集信息名称:网络类型、网络地址、运营商类型、本机手机号、手机设备类型、手机操作系统、硬件厂商
目的及其用途:识别⽤户的⼿机号码快速登录/号码校验
信息处理方式:SDK自行采集
第三方主体:中国联合网络通信有限公司

协议名称:《中国联通服务与隐私协议条款 》
协议链接:协议

中国电信
收集信息名称:网络 IP 地址、网络类型、注册手机号码、本机号码、国际移动用户标识码、应用进程信息、网络连接类型、网络状态信息、网络地址、运营商类型、手机设备类型、手机设备厂商、手机操作系统类型及版本
目的及其用途:识别⽤户的⼿机号码快速登录/号码校验及业务风控
信息处理方式:SDK 自行采集
第三方主体:天翼数字生活科技有限公司

协议名称:《天翼账号服务与隐私协议》
协议链接:服务与隐私协议

3、您务必确保用户同意《隐私政策》之后,再初始化创蓝SDK。具体初始化步骤详见下文。

能力介绍

  • 一键登录:SDK获取当前流量卡对应的token,通过服务端可置换当前流量卡的手机号码。
  • 本机校验:SDK获取当前流量卡对应的token,提供手机号码,通过服务端可校验提供的手机号是否为当前流量卡的手机号码。

注意:本机校验和一键登录是两个单独的能力,两者的token不能互用,否则会报”应用能力不匹配”。

前置条件

  • 闪验SDK支持minSdkVersion 16及以上版本
  • 闪验SDK支持中国移动3/4G/5G、联通3/4G/5G、电信4G/5G的取号能力,在3G网络下时延会更高
  • 闪验SDK支持单数据网络、数据网络与WiFi网络双开,不支持单WiFi网络
  • 对于双卡手机,闪验SDK只对当前流量卡取号,双卡均未开数据流量SDK将会返回错误码

注意:三网运营商内部执行逻辑不同,必须分别使用三网运营商的卡进行测试,防止功能异常

创建应用

注意:应用AppId与包名、包签名一一绑定,如果应用有多个包名或签名不同的马甲包,须创建多个对应包名和签名的应用,否则初始化会报包名或签名校验不通过。

快速体验demo

  • Android压缩包中的apk文件夹中是闪验demo的安装包,可以直接安装到Android手机上。
  • 在https://github.com/253CL/shanyan_demo_android下载demo示例源码,可直接运行起来测试。

开发环境搭建

本地集成

a.将SDK中libs目录下的aar包拷贝到您工程的libs目录下,如没有该目录需新建。

b.在build文件的dependencies中添加aar包依赖:

repositories { flatDir { dirs '../app/libs' } } dependencies {implementation fileTree(include: ['*.aar'], dir: 'libs')}

权限配置

必要权限:

<uses-permission android:name="android.permission.INTERNET"/> <uses-permission android:name="android.permission.ACCESS_WIFI_STATE"/> <uses-permission android:name="android.permission.ACCESS_NETWORK_STATE"/> <uses-permission android:name="android.permission.CHANGE_NETWORK_STATE"/> <uses-permission android:name="android.permission.CHANGE_WIFI_STATE"/>

配置权限说明

权限名称

权限说明

使用说明

INTERNET

允许应用程序联网

用于访问网关和认证服务器

ACCESS_WIFI_STATE

允许访问WiFi网络状态信息

允许程序访问WiFi网络状态信息

ACCESS_NETWORK_STATE

允许访问网络状态

区分移动网络或WiFi网络

CHANGE_NETWORK_STATE

允许改变网络连接状态

设备在WiFi跟数据双开时,强行切换使用数据网络

CHANGE_WIFI_STATE

允许改变WiFi网络连接状态

设备在WiFi跟数据双开时,强行切换使用

注册授权页activity

在application标签内配置授权登录activity,screenOrientation和theme可以根据项目需求自行修改

<!-- *******************************授权页*********************************** --> <activity android:name="com.chuanglan.shanyan_sdk.view.ShanYanOneKeyActivity" android:configChanges="keyboardHidden|orientation|screenSize" android:launchMode="singleTop" android:screenOrientation="behind" /> <!-- *******************************协议页*********************************** --> <activity android:name="com.chuanglan.shanyan_sdk.view.CTCCPrivacyProtocolActivity" android:configChanges="keyboardHidden|orientation|screenSize" android:launchMode="singleTop" android:screenOrientation="behind" /> 

配置对http协议的支持

两种方式(任选其一):

方式一:在application标签中配置usesCleartextTraffic,示例如下

<application android:name=".view.MyApplication" *** android:usesCleartextTraffic="true" ></application>

方式二:将域名10010.com设置为白名单,示例如下

<application android:name=".view.MyApplication" *** android:networkSecurityConfig="@xml/network_security_config" ></application>

📎network_security_config.xml文件:

<?xml version="1.0" encoding="utf-8"?> <network-security-config> <domain-config cleartextTrafficPermitted="true"> <domain includeSubdomains="true">10010.com</domain> </domain-config> </network-security-config>

混淆规则

-dontwarn com.cmic.gen.sdk.** -keep class com.cmic.gen.sdk.**{*;} -dontwarn com.sdk.** -keep class com.sdk.** { *;} -keep class cn.com.chinatelecom.account.api.**{*;}

资源压缩过滤

如果使用AndResGuard资源压缩,需添加过滤,参考demo示例:

"R.anim.umcsdk*", "R.drawable.umcsdk*", "R.layout.layout_shanyan*", "R.id.shanyan_view*",

如果使用系统shrinkResources true,需要在raw/keep里面配置资源过滤📎keep.xml

<?xml version="1.0" encoding="utf-8"?> <resources xmlns:tools="http://schemas.android.com/tools" tools:keep="R.anim.umcsdk*, R.drawable.umcsdk*, R.layout.layout_shanyan*, R.id.shanyan_view*" />

添加示例:

闪信测试_h5本机号码一键登录

通过上面的几个步骤,工程就配置完成了,接下来就可以在工程中使用闪验SDK进行开发了。

二.一键登录api

0.提升授权页的打开速度

  • 建议在执行拉取授权登录页的方法前,提前一段时间调用预取号方法,中间最好有2-3秒的缓冲(因为预取号方

法需要1~3s的时间取得临时凭证)

  • 如果条件允许,超时时间设置为6秒有助于网络不好的时候取号成功率,SDK默认4秒。

1.初始化

调用SDK其他流程方法前,请确保已调用过初始化,否则会返回未初始化。(会采集信息,建议放到同意协议后调用)

方法原型

public void init(Context context, String appId, InitListener initListener)

参数描述

参数

类型

说明

context

Context

传ApplicationContext对象

appId

String

闪验平台获取到的appId

initListener

InitListener

初始化回调监听

示例代码

 OneKeyLoginManager.getInstance().init(getApplicationContext(), appId, new InitListener() { @Override public void getInitStatus(int code, String result) { } });

getInitStatus(int code, String result)返回参数code和result,含义如下:

字段

类型

含义

code

int

code为1022:成功;其他:失败

result

String

初始化结果描述

2.预取号

  • 【可选方法】获取取号临时凭证;建议在调用拉起授权页前2~3秒调用,可以缩短拉起授权页耗时;如果启动app就需要展示授权页,中间没有2~3秒的间隔,不建议调用,起不到缩短时间的效果。
  • 请勿与拉起授权登录页同时或之后调用。
  • 避免大量资源下载时调用,例如游戏中加载资源或者更新补丁的时

示例代码:

OneKeyLoginManager.getInstance().getPhoneInfo(new GetPhoneInfoListener() { @Override public void getPhoneInfoStatus(int code, String result) { } });

getPhoneInfoStatus(int code, String result)返回参数code和result,含义如下:

字段

类型

含义

code

Int

code为1022:成功;其他:失败

result

String

预取号结果描述

3.拉起授权页&获取token

  • 拉起授权页方法将会调起运营商授权页面。已登录状态请勿调用 。
  • 每次调用拉起授权页方法前均需先调用授权页配置方法,否则授权页可能会展示异常。
  • 必须保证上一次拉起的授权页已经销毁再调用,否则SDK会返回请求频繁。
  • 拉起一次授权页,登录按钮最多只能点击4次,第五次默认会置灰,不返回信息。

方法原型:

public void openLoginAuth(boolean isFinish, OpenLoginAuthListener openLoginAuthListener, OneKeyLoginListener oneKeyLoginListener){}

参数描述

字段

类型

含义

isFinish

boolean 

点击授权页一键登录按钮有回调时是否自动销毁授权页:

true:自动销毁

false:不自动销毁,开发者需主动调用销毁授权页方法进行授权页销毁操作 

openLoginAuthListener

OpenLoginAuthListener

授权页是否拉起成功监听

oneKeyLoginListener

OneKeyLoginListener

点击授权页登录按钮及返回键监听(code等于1011为点击返回键(包括物理返回键),其他均为点击一键登录按钮的回调)

示例代码

OneKeyLoginManager.getInstance().openLoginAuth(false, new OpenLoginAuthListener() { @Override public void getOpenLoginAuthStatus(int code, String result) { } }, new OneKeyLoginListener() { @Override public void getOneKeyLoginStatus(int code, String result) { } });

getOpenLoginAuthStatus(int code,String result)返回参数code和result,含义如下:

字段

类型

含义

code

int

code为1000:授权页成功拉起

其他:失败

result

String

打开授权页结果描述

getOneKeyLoginStatus(int code,String result)返回参数code和result,含义如下:

字段

类型

含义

code

int

code为1000:成功
其他:失败 (包含点击返回键 code==1011)

result

String

结果描述

当外层code为1000时,result的返回为

{"token":"A1-Gv-q1ORHeOOZyFe261VJAD_JetfjvVNzJyoQqJxq_lSY39xXmtagZ0VA66IMr7htOQWSHBhnvM4wNDJlZV0DsUtGZDU640ItGCdYuA0N0k3cjkcg4omJWm_1YEMEa55TE-cCo6DsE3LAsc7nmzp5ortoS9f5QjBV9RGGBQYDbX74Er2N9Or8alWzAyP5KzvhJ3mUe3gQFWjYomTpw-fohsjv8ldi0AqaBUxYittipt3l69j3uMK07WAWe_kmSj1biQvbs5hVnCKofFXyvhw_9A"}

含义如下:

字段

类型

含义

token

String

置换手机号接口所需的token。每个token只能使用一次,一次有效。

4.置换手机号

当一键登录外层code为1000时,会获取到置换手机号所需的token。请参考「服务端」文档来实现获取手机号码的步骤

5.其他API

a.设置log开关

OneKeyLoginManager.getInstance().setDebug(true);

注:需要放到SDK初始化之前调用,用ProcessShanYanLogger可以过滤方法调用及回调等信息,用UIShanYanTask可以过滤UI配置相关日志,用ActivityLifecycleShanYanTask可以过滤界面生命周期相关日志。

b.设置loading显示状态

点登录按钮时默认会显示loading,本方法可在loading显示后改变loading状态时调用,如果需要点击登录按钮不显示loading,请请看常见问题

 OneKeyLoginManager.getInstance().setLoadingVisibility(false);

参数描述

参数

类型

说明

visibility

boolean

点击一键登录后,授权页展示的loading view(设置true 显示;false隐藏)

c.设置协议勾选框状态

本方法仅在授权页拉起后想改变CheckBox状态时使用,设置进入授权页时的默认状态,请使用授权页配置ShanYanUIConfig里面的setPrivacyState方法

 OneKeyLoginManager.getInstance().setCheckBoxValue(false);

参数描述

参数

类型

说明

isChecked

boolean

设置协议复选框是否选中(设置true 选中;false 未选中)

d.清理预取号缓存

OneKeyLoginManager.getInstance().clearScripCache(getApplicationContext());

e.获取运营商类型

OneKeyLoginManager.getInstance().getOperatorType(getApplicationContext());

返回值4种:CMCC、CUCC、CTCC、UNKNOWN_OPERATOR;

释义:CMCC(移动);CUCC(联通);CTCC(电信); Unknown_Operator(无SIM卡或非三网运营商)

f.设置预取号超时时间

需要初始化之前调用,方法原型:

OneKeyLoginManager.getInstance().setTimeOutForPreLogin(6);

参数描述

参数

类型

说明

time

int

超时时间;单位秒,不设置默认4

注:不建议设置小于4的值,否则可能会导致超时的概率增加。

g.获取运营商信息

OneKeyLoginManager.getInstance().getOperatorInfo(getApplicationContext());

返回示例:

{"telecom":"CTCC", "protocolName":"天翼服务及隐私协议", "protocolUrl":"https:\/\/e.189.cn\/sdk\/agreement\/detail.do?hidetop=true"}

返回信息描述

字段

类型

含义

telecom

String

四种情况:CMCC(移动);CUCC(联通);CTCC(电信); Unknown_Operator(无SIM卡或非三网运营商)

protocolName

String

当前流量卡对应的协议名称

protocolUrl

String

当前流量卡对应的协议链接

h.授权页协议点击事件监听

 OneKeyLoginManager.getInstance().setPrivacyOnClickListener((url, name) -> { });

返回参数:

字段

类型

含义

url

String

点击的协议链接

name

String

点击的协议名称

i.设置是否只允许主进程调用

OneKeyLoginManager.getInstance().checkProcessesEnable(false);

参数描述

参数

类型

说明

enable

boolean

true:只在主进程可以调用;false:不判断进程;默认:true(每次调用方法会执行一次系统的getRunningAppProcesses方法);

j.授权页点击事件监听

需要对授权页点击事件监听的用户,可调用此方法监听授权页点击事件,无此需求可以不写。

 OneKeyLoginManager.getInstance().setActionListener(new ActionListener() { @Override public void ActionListner(int type, int code, String message) { } });

ActionListners(int type,int code,String message)返回参数含义如下:

字段

类型

含义

type

int

type=1 ,隐私协议点击事件

type=2 ,checkbox点击事件

type=3 ,一键登录按钮点击事件

code

int

type=1 ,隐私协议点击事件,code分为0,1,2,3(协议页序号)

type=2 ,checkbox点击事件,code分为0,1(0为未选中,1为选中)

type=3 ,一键登录点击事件,code分为0,1(0为协议未勾选时,1为协议勾选时)

message

String

点击事件的详细信息

k.销毁授权页

A.自动销毁

1.在授权登录页面,当用户主动点击左左上角返回按钮时,返回码为1011,授权页面将自动销毁授权页;

2.当用户点击物理返回键返回键(相当于取消登录),返回码为1011,授权页面将自动销毁授权页

3.当用户设置一键登录或者其他自定义控件为自动销毁时,得到回调后,授权页面将自动销毁

B.手动销毁

OneKeyLoginManager.getInstance().finishAuthActivity();

注意:销毁授权页时,请不要在销毁后回到的界面主线程中做耗时操作,避免堵塞授权页onDestroy方法,导致再次调用拉起授权页时报请求频繁。

l.跳转到SDK内部协议页

 public void startPrivacyProtocolActivity(Context context, String url, String name){}

参数描述

参数

类型

说明

context

Context

上下文

url

url

协议链接

name

name

协议名称

m.授权页启动|销毁监听

 OneKeyLoginManager.getInstance().setLoginActivityStatusListener(new LoginActivityStatusListener() { @Override public void onActivityCreated(Activity activity) { } @Override public void onActivityDestroyed(Activity activity) { } });

n.获取授权页协议勾选框CheckBox对象

需要在授权页activity创建后并且未销毁的情况下调用。

CheckBox privacyCheckBox=OneKeyLoginManager.getInstance().getPrivacyCheckBox(); 

6.授权页界面配置

可选方法,SDK有内置默认授权页配置,如需自定义界面,请调用此方法。

a.设计规范

闪信测试_h5本机号码一键登录

闪验登录授权界面设计规范

注意:开发者不得通过任何技术手段,将授权页面的登录按钮、隐私栏、号码栏内容隐藏、覆盖,对于接入闪验SDK并上线的应用,我方和运营商会对授权页面做审查,如果有出现未按要求设计授权页面,我方有权将应用的一键登录功能下线。

b.授权页配置

调用该方法可实现对三网运营商授权页面个性化设计,配置一次有效,每次调用拉起授权页方法前必须先调用该方法,否则授权界面会展示异常,具体实现可参考demo示例的ConfigUtils配置类。(三网界面配置内部实现逻辑不同,请务必使用移动、联通、电信卡分别测试

方法原型

public void setAuthThemeConfig(ShanYanUIConfig shanPortraitYanUIConfig, ShanYanUIConfig shanLandYanUIConfig) {}

参数说明

参数

参数类型

说明

shanPortraitYanUIConfig

ShanYanUIConfig

竖屏页面样式配置对象,开发者在 ShanYanUIConfig.java类中调用对应的方法配置授权页中对应的元素(该参数不能传null,否则展示默认页面)

shanLandYanUIConfig

ShanYanUIConfig

横屏页面样式主题配置对象,开发者在 ShanYanUIConfig.java类中调用对应的方法配置授权页中对应的元素(针对指定屏幕方向的,该参数传null)

示例代码

OneKeyLoginManager.getInstance().setAuthThemeConfig(ConfigUtils.getCJSConfig(getApplicationContext()), ConfigUtils.getCJSLandscapeUiConfig(getApplicationContext()))

背景

三选一,支持图片,gif图,视频

方法

参数类型

说明

setAuthBGImgPath

Drawable

设置授权页背景图片

setAuthBgGifPath

String

只支持本地gif图,需要放置到drawable文件夹中。传入图片名称即可。

setAuthBgVideoPath

String

支持本地路径如:”android.resource://” + context.getPackageName() + “/” + R.raw.testvideo”

支持网络路径:”https://xxx”

整体属性

方法

参数类型

说明

setActivityTranslateAnim

string

设置授权页进出场动画(默认跟随系统):

参数1:进场动画传xml文件名即可

参数2:退场动画传xml文件名即可

setTextSizeIsdp

boolean

设置固有控件字体是否以dp为单位(true:dp;false:sp;默认:false)

setBackPressedAvailable

boolean

设置授权页物理返回键是否可用(true:可用;false:禁用;默认:true;禁用后仍会执行getOneKeyLoginStatus回调,只是不销毁授权页)

setFitsSystemWindows

boolean

同系统setFitsSystemWindows;视频背景需要伸入到状态栏时可以调用此方法

setAuthFlagSecureEnable

boolean

进入后台列表授权页是否模糊显示(true:显示空白页;false:正常显示;默认:false)

setPrivacyFlagSecureEnable

boolean

进入后台列表协议页是否模糊显示(true:显示空白页;false:正常显示;默认:false)

状态栏

方法

参数类型

说明

setStatusBarColor

int

设置状态栏背景颜色(默认透明)

setLightColor

boolean

设置状态栏字体颜色是否为白色(true:白色;false:不是白色;默认:false)

setStatusBarHidden

boolean

设置状态栏是否隐藏(true:隐藏;false:不隐藏;默认:false)

setVirtualKeyTransparent

boolean

设置虚拟键是否透明(true:透明;false:不透明;默认:false)

导航栏(默认高度:50dp)

方法

参数类型

说明

setNavColor

int

设置导航栏背景颜色(默认:0xffffffff)

setNavText

string

设置导航栏标题文字(默认:免密登录)

setNavTextColor

int

设置导航栏标题文字颜色(默认:0xff080808)

setNavTextSize

int(单位sp)

设置导航栏标题文字大小(默认:16sp)

setNavReturnImgPath

Drawable

设置导航栏返回按钮图标

setNavReturnImgHidden

boolean

设置导航栏返回按钮是否隐藏(true:隐藏;false:不隐藏;默认:false)

setNavReturnBtnWidth

int(单位dp)

设置导航栏返回按钮宽度(默认25dp)

setNavReturnBtnHeight

int(单位dp)

设置导航栏返回按钮高度(默认25dp)

setNavReturnBtnOffsetRightX

int(单位dp)

设置导航栏返回按钮距离屏幕右侧X偏移(默认:以

setNavReturnBtnOffsetX为准)

setNavReturnBtnOffsetX

int(单位dp)

设置导航栏返回按钮距离屏幕左侧X偏移(默认:8dp)

setNavReturnBtnOffsetY

int(单位dp)

设置导航栏返回按钮距离屏幕上侧Y偏移(默认:8dp)

setAuthNavHidden

boolean

设置导航栏是否隐藏(true:隐藏;false:不隐藏;默认:false)

setAuthNavTransparent

boolean

设置导航栏是否透明(true:透明;false:不透明;默认:true)

setNavTextBold

boolean

设置导航栏字体是否加粗(true:加粗;false:不加粗;默认:false)

logo图标

方法

参数类型

说明

setLogoImgPath

Drawable

设置logo图片

setLogoWidth

int(单位dp)

设置logo宽度(默认:75dp)

setLogoHeight

int(单位dp)

设置logo高度(默认:75dp)

setLogoOffsetY

int(单位dp)

设置logo相对于标题栏下边缘y偏移(默认:50dp)

setLogoOffsetBottomY

int(单位dp)

设置logo相对于屏幕底部y偏移(默认:以

setLogoOffsetY为准)

setLogoHidden

boolean

设置logo是否隐藏(true:隐藏;false:不隐藏;默认:false)

setLogoOffsetX

int(单位dp)

设置logo相对屏幕左侧X偏移(默认:水平居中)

号码栏

方法

参数类型

说明

setNumberColor

int

设置号码栏字体颜色(默认:0xff)

setNumFieldOffsetY

int(单位dp)

设置号码栏相对于标题栏下边缘y偏移(默认:140dp)

setNumFieldOffsetBottomY

int(单位dp)

设置号码栏相对于屏幕底部y偏移(默认:以

setNumFieldOffsetY为准)

setNumFieldWidth

int(单位dp)

设置号码栏宽度(默认:自适应)

setNumFieldHeight

int(单位dp)

设置号码栏高度(默认:自适应)

setNumberSize

int(单位sp)

设置号码栏字体大小(默认:18sp)

setNumFieldOffsetX

int(单位dp)

设置号码栏相对屏幕左侧X偏移(默认:水平居中)

setNumberBold

boolean

设置号码栏字体是否加粗(true:加粗;false:不加粗,默认:false)

登录按钮(默认高度:46dp)

方法

参数类型

说明

setLogBtnText

string

设置登录按钮文字(默认:本机号码一键登录)

setLogBtnTextColor

int

设置登录按钮文字颜色

setLogBtnBackgroundColor

int

设置登录按钮背景色

setLogBtnImgPath

Drawable

设置授权登录按钮图片

setLogBtnOffsetY

int(单位dp)

设置登录按钮相对于标题栏下边缘Y偏移(默认:220dp)

setLogBtnOffsetBottomY

int(单位dp)

设置登录按钮相对于屏幕底部Y偏移(默认:以

setLogBtnOffsetY为准)

setLogBtnTextSize

int(单位sp)

设置登录按钮字体大小(默认:15sp)

setLogBtnHeight

int(单位dp)

设置登录按钮高度(默认:46dp)

setLogBtnWidth

int(单位dp)

设置登录按钮宽度(默认:屏幕宽减94dp,即两边各47dp)

setLogBtnOffsetX

int(单位dp)

设置登录按钮相对屏幕左侧X偏移(默认:水平居中)

setLogBtnTextBold

boolean

设置登录按钮字体是否加粗(true:加粗;false:不加粗;默认:false)

隐私栏

方法

参数类型

说明

setAppPrivacyOne

string(链接)

设置开发者隐私条款1名称和URL

参数1:名称

参数2:url

setAppPrivacyTwo

string(链接)

设置开发者隐私条款2名称和URL

参数1:名称

参数2:url

setAppPrivacyThree

string(链接)

设置开发者隐私条款3名称和URL

参数1:名称

参数2:url

setPrivacySmhHidden

boolean

设置协议名称是否显示书名号《》,默认显示书名号(true:不显示;false:显示;默认:false)

setPrivacyTextSize

int(单位sp)

设置隐私栏字体大小(默认:10sp)

setAppPrivacyColor

int

设置隐私条款名称颜色

参数1:基础文字颜色(默认:0xff)

参数2 :  协议文字颜色(默认:0xff0085d0)

setPrivacyOffsetBottomY

int(单位dp)

设置隐私条款相对于授权页面底部下边缘y偏移(默认:30dp)

setPrivacyOffsetY

int(单位dp)

设置隐私条款相对于授权页面标题栏下边缘y偏移(默认:以

setPrivacyOffsetBottomY为准)

setPrivacyOffsetX

int(单位dp)

设置隐私条款相对屏幕左侧X偏移(默认:水平居中)

setPrivacyOffsetGravityLeft

boolean

设置隐私条款文字多行显示时是否左对齐(true:左对齐;false:居中;默认:false)

setPrivacyState

boolean

设置隐私条款的CheckBox复选框默认状态(true:选中;false:未选中,默认:true)

setUncheckedImgPath

Drawable

设置隐私条款的CheckBox未选中时图片

setCheckedImgPath

Drawable

设置隐私条款的CheckBox选中时图片

setCheckBoxHidden

boolean

设置隐私条款的CheckBox是否隐藏(true:隐藏;false:不隐藏;默认:false)

setCheckBoxWH

int(单位dp)

设置checkbox的宽高,包含两个参数:1.宽 2.高(默认:各13dp)

setPrivacyWidth

int(单位dp)

设置隐私栏宽度

setcheckBoxOffsetXY(2.3.1.6及之后版本新增方法)

int(单位dp)

设置checkbox在协议框父控件中的位置,包含两个参数:1.左偏移量 2.上偏移量(默认:在父控件内居中)

setCheckBoxMargin

int(单位dp)

设置checkbox热点区域范围,包含四个参数:1.向左扩大 2.向上扩大 3.向右扩大 4.向下扩大(默认:各10dp)

setPrivacyText

String

设置隐私条款名称外的文字,包含五个参数,参数示例(红色 字体为传入参数):

同意《***》和《***》、《***》、《***》并授权闪验获取本机号码

参数1: 同意
参数2:和

参数3:、

参数4:、

参数5:并授权闪验获取本机号码

setPrivacyTextBold

boolean

设置协议栏字体是否加粗(true:加粗;false:不加粗;默认:false)

setPrivacyCustomToast

Toast

未勾选时,自定义点击一键登录的Toast提示

setPrivacyCustomToastText

String

未勾选协议时toast提示文字(默认:请勾选协议)

setCheckBoxTipDisable

boolean

未勾选协议时toast提示是否关闭(true:关闭,false:开启,默认:false)

setPrivacyNameUnderline

boolean

协议是否显示下划线(true:显示;false:不显示;默认:false)

setOperatorPrivacyAtLast

boolean

运营商协议是否为最后一个显示(true:最后显示;false:显示在最前;默认:false)

setPrivacyGravityHorizontalCenter

boolean

设置隐私协议栏是否居中显示(true:居中;false:居左;默认:false)

setPrivacyActivityEnabled

boolean

是否使用SDK内置协议页activity(true:使用;false:不使用,只给回调,由开发者根据回调内容自行实现协议页activity及相关跳转;默认:true)

如果需要增加3个以上自定义协议,可使用如下方法(具体可参数demo示例源码A配置):

方法

参数类型

说明

setMorePrivacy

List<ConfigPrivacyBean>

ConfigPrivacyBean为自定义协议配置类,包含可配置参数:
name:协议名称(setName)
url:协议链接(setUrl)
color:协议文字颜色(setColor)
midStr:协议之间的文字(setMidStr)
title:协议页导航栏标题(setTitle)

运营商slogan(**提供认证服务)

方法

参数类型

说明

setSloganTextColor

int

设置slogan文字颜色(默认:0xff)

setSloganTextSize

int(单位sp)

设置slogan文字字体大小(默认:10sp)

setSloganOffsetY

int(单位dp)

设置slogan相对于标题栏下边缘y偏移(默认:195dp)

setSloganHidden

boolean

设置slogan是否隐藏(true:隐藏;false:不隐藏;默认:false)

setSloganOffsetBottomY

int(单位dp)

设置slogan相对屏幕底部Y偏移(默认:以

setSloganOffsetY为准)

setSloganOffsetX

int(单位dp)

设置slogan相对屏幕左侧X偏移(默认:水平居中)

setSloganTextBold

boolean

设置slogan文字字体是否加粗(true:加粗;false:不加粗;默认:false)

创蓝slogan(创蓝253提供技术支持;默认:隐藏)

方法

参数类型

说明

setShanYanSloganTextColor

int

设置创蓝slogan文字颜色

setShanYanSloganTextSize

int(单位sp)

设置创蓝slogan文字字体大小

setShanYanSloganOffsetY

int(单位dp)

设置创蓝slogan相对于标题栏下边缘y偏移

setShanYanSloganHidden

boolean

设置创蓝slogan是否隐藏(true:隐藏;false:不隐藏)

setShanYanSloganOffsetBottomY

int(单位dp)

设置创蓝slogan相对屏幕底部Y偏移

setShanYanSloganOffsetX

int(单位dp)

设置创蓝slogan相对屏幕左侧X偏移

setShanYanSloganTextBold

boolean

设置创蓝slogan文字字体是否加粗(true:加粗;false:不加粗)

登录loading

方法

参数类型

说明

setLoadingView

ViewGroup

设置自定义loading

添加自定义控件

1.添加相对控件(指定在登录按钮和协议栏之间;默认铺满按钮和协议之间区域)

注意:使用此方法添加自定义控件时,登录按钮必须使用setLogBtnOffsetY设置偏移,协议栏必须使用setPrivacyOffsetBottomY设置偏移,否则可能不显示

方法

参数类型

说明

setRelativeCustomView

View

设置自定义布局

boolean

点击布局是否需要销毁授权页:true销毁 false不销毁

int(单位dp)

布局左间距

int(单位dp)

距登录按钮的上边距

int(单位dp)

布局右边距

int(单位dp)

距协议栏的下边距

ShanYanCustomInterface

整个view的点击事件,内部的子view点击事件需自行实现

2.添加普通自定义控件

方法原型

public ShanYanUIConfig.Builder addCustomView(View view, boolean isFinish, boolean type, ShanYanCustomInterface shanYanCustomInterface) {}

参数说明

参数

参数类型

说明

view(必填)

View

自定义控件对象

isFinish(必填)

boolean

是否需要销毁授权页:true销毁 false不销毁

type(必填)

boolean

设置自定义控件的位置:

true为授权页导航栏

false为授权页导航栏以下空白处

shanYanCustomInterface

ShanYanCustomInterface

自定义控件监听

注意:如果添加布局为自定义控件,监听实现请参考demo示例。

设置弹窗样式

调用该方法可实现将授权页设置成弹窗样式。

方法原型

public ShanYanUIConfig.Builder setDialogTheme(boolean isdialogTheme, int dialogWidth, int dialogHeight, int dialogX, int dialogY ,boolean isDialogBottom) {}

参数说明

参数

参数类型

说明

isdialogTheme(必填)

boolean

是否用弹窗样式:true 弹窗样式 false 非弹窗样式

dialogWidth(必填)

int(单位dp)

授权页弹窗宽度

dialogHeight(必填)

int(单位dp)

授权页弹窗高度

dialogX

int(单位dp)

授权页弹窗X偏移量(以屏幕中心为原点)

dialogY

int(单位dp)

授权页弹窗Y偏移量(以屏幕中心为原点)

isDialogBottom

boolean

授权页弹窗是否贴于屏幕底部:

true:显示到屏幕底部,dialogY参数设置将无效

false:不显示到屏幕底部,以dialogY参数为准

注意:设置弹窗效果背景的透明度需要在Manifest.xml里面配置授权界面主题样式

样式示例:

1.为授权界面的activity设置弹窗theme主题,电信授权页为例:

<activity android:name="com.chuanglan.shanyan_sdk.view.ShanYanOneKeyActivity" android:configChanges="keyboardHidden|orientation|screenSize" android:launchMode="singleTop" android:screenOrientation="behind" android:theme="@style/Theme.ActivityDialogStyle" />

2.设置theme主题的style样式

<style name="Theme.ActivityDialogStyle" parent="Theme.AppCompat.Light.NoActionBar"> <!--背景透明--> <item name="android:windowBackground">@android:color/transparent</item> <item name="android:windowIsTranslucent">true</item> <!--dialog的整个屏幕的背景是否有遮障层--> <item name="android:backgroundDimEnabled">true</item> </style>

注意:如果需要触摸弹窗外部销毁授权页,style的parent请使用系统dialog相关主题。

弹窗样式时的遮盖层灰度设置

方法

参数类型

说明

setDialogDimAmount

float

授权页遮盖层灰度设置范围是(0~1)

设置横竖屏

在manifest文件中,指定授权页activity的screenOrientation即可

注意:只有全屏不透明的activity才能指定方向,否则在8.0系统版本上会报“Only fullscreen opaque activities can request orientation”或其他异常。

即:弹框或者透明主题,授权页不能指定方向。如需指定方向,可以指定授权页前个页面的方向,授权页设置跟随前个界面方向,即:“android:screenOrientation=”behind””

隐私协议提示弹框(具体实现见常见问题)

方法

参数类型

说明

addCustomPrivacyAlertView

view

添加授权页上显示隐私协议弹框

c.协议页配置

方法

参数类型

说明

setPrivacyActivityTranslateAnim

String

设置授权页进出场动画(默认跟随系统):

参数1:进场动画传xml文件名即可

参数2:退场动画传xml文件名即可

setPrivacyStatusBarHidden

boolean

协议页是否隐藏状态栏(true:隐藏,false:不隐藏;默认:false)

setPrivacyStatusBarColor

int

协议页状态栏颜色(默认:0xffffffff)

setPrivacyLightColor

boolean

协议页状态栏文字颜色是否为白色(true:白色;false:不是白色;默认:false)

setPrivacyTitleArray

String[]

协议页标题名称(默认:授权页对应的协议名称)

setPrivacyNavColor

int

设置协议页导航栏背景颜色(默认:0xffffffff)

setPrivacyNavTextBold

boolean

设置协议页导航栏标题文字是否加粗(true:加粗;false:不加粗;默认:false)

setPrivacyNavTextColor

int

设置协议页导航栏标题文字颜色(默认:0xff080808)

setPrivacyNavTextSize

int(单位sp)

设置协议页导航栏标题文字大小(默认:16sp)

setPrivacyNavReturnImgPath

Drawable

设置协议页导航栏返回按钮图标

setPrivacyNavReturnImgHidden

boolean

设置协议页导航栏返回按钮是否隐藏(true:隐藏;false:不隐藏;默认:false)

setPrivacyNavReturnBtnWidth

int(单位dp)

设置协议页导航栏返回按钮宽度(默认:25dp)

setPrivacyNavReturnBtnHeight

int(单位dp)

设置协议页导航栏返回按钮高度(默认:25dp)

setPrivacyNavReturnBtnOffsetRightX

int(单位dp)

设置协议页导航栏返回按钮距离屏幕右侧X偏移(默认:以setPrivacyNavReturnBtnOffsetX为准)

setPrivacyNavReturnBtnOffsetX

int(单位dp)

设置协议页导航栏返回按钮距离屏幕左侧X偏移(默认:8dp)

setPrivacyNavReturnBtnOffsetY

int(单位dp)

设置协议页导航栏返回按钮距离屏幕上侧Y偏移(默认:8dp)

setViewPortEnabled

boolean

协议页H5是否支持viewport适配(true:支持,false:不支持;默认:false)

三.本机校验api

注:本机认证同免密登录,需要初始化,本机认证、一键登录可共用初始化,两个功能同时使用时,只需调用一次初始化。

1.初始化

同一键登录初始化

2.本机校验获取token

在初始化执行之后调用,本机号校验界面需自行实现,可以在多个需要校验的页面中调用。

示例代码:

 OneKeyLoginManager.getInstance().startAuthentication(new AuthenticationExecuteListener() { @Override public void authenticationRespond(int code, String result) { } });

authenticationRespond(int code,String result)返回参数code和result,含义如下:

字段

类型

含义

code

int

code为2000:成功

其他:失败

result

String

返回信息

当外层code为2000时,result的返回为

{"token":""}

含义如下:

字段

类型

含义

token

String

检验手机号接口所需的token。每个token只能使用一次,一次有效。

3.校验手机号

当一键登录外层code为2000时,会获取到检验手机号所需的token。请参考「服务端」文档来实现检验手机号码的步骤。

四.返回码

此表为SDK外层返回码,如需查看内层码及服务端返回码,请查看官网返回码

返回码

返回码描述

1000

一键登录获取token成功

1001

运营商通道关闭

1002

运营商信息获取失败,请结合result查看具体失败原因

1003

一键登录获取token失败,请结合result查看具体失败原因

1007

网络请求失败,请结合result查看具体失败原因

1011

点击返回,用户取消免密登录

1014

SDK内部异常,请结合result查看具体失败原因

1016

APPID为空

1019

其他错误,请结合result查看具体失败原因

1022

网络初始化、预取号成功

1023

初始化、预取号失败,请结合result查看具体失败原因

1031

请求过于频繁

1032

用户禁用

2000

本机号校验获取token成功

2003

本机号校验返回失败,请结合result查看具体失败原因

今天的文章
闪信测试_h5本机号码一键登录分享到此就结束了,感谢您的阅读。

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。
如需转载请保留出处:https://bianchenghao.cn/81283.html

(0)
编程小号编程小号

相关推荐

发表回复

您的电子邮箱地址不会被公开。 必填项已用 * 标注