更新记录

1.0.0(2020-01-16)

极光认证SDK hbuilder 插件第一版

  • 认证 Android 原生 SDK v2.5.2
  • 认证 iOS 原生 SDK v2.5.3

原生插件通用使用流程:

  1. 购买插件,选择该插件绑定的项目。
  2. 在HBuilderX里找到项目,在manifest的app原生插件配置中勾选模块,如需要填写参数则参考插件作者的文档添加。
  3. 根据插件作者的提供的文档开发代码,在代码中引用插件,调用插件功能。
  4. 打包自定义基座,选择插件,得到自定义基座,然后运行时选择自定义基座,进行log输出测试。
  5. 开发完毕后正式云打包

付费原生插件目前不支持离线打包。
Android 离线打包原生插件另见文档 https://nativesupport.dcloud.net.cn/NativePlugin/offline_package/android
iOS 离线打包原生插件另见文档 https://nativesupport.dcloud.net.cn/NativePlugin/offline_package/ios

注意事项:使用HBuilderX2.7.14以下版本,如果同一插件且同一appid下购买并绑定了多个包名,提交云打包界面提示包名绑定不一致时,需要在HBuilderX项目中manifest.json->“App原生插件配置”->”云端插件“列表中删除该插件重新选择


JVerification Hbuilder API

引用方式

const jv = uni.requireNativePlugin('JIGUANG-JVerification');

设置 debug 模式

API - setDebugMode(Boolean)

开启 debug 模式,请在初始化前调用

参数说明

  • true - 开启,false - 关闭

示例

jv.setDebugMode(true);

初始化

API - init(Object,CALLBACK)

初始化接口

参数说明

  • Object
参数名称 参数类型 参数说明
timeout number 设置初始化超时时间,单位毫秒,合法范围是(0,30000],推荐设置为 5000-10000,默认值为 10000。
isProduction boolean 是否生产环境。如果为开发状态,设置为 false;如果为生产状态,应改为 true。可选,默认为 false。(仅作用与 iOS)
advertisingId string 广告标识符,可选。(仅作用与 iOS)

示例

jv.init({
        timeout:7000,
        isProduction:false,
    },result=>{
        let code = result.code
        let desc = result.content
    });

获取初始化状态

API - isInitSuccess(CALLBACK)

初始化是否成功

示例

jv.isInitSuccess(result=>{
        let isSucc = result.enable;
    })

判断网络环境是否支持

API - checkVerifyEnable(CALLBACK)

判断当前网络环境是否可以发起认证

示例

jv.checkVerifyEnable(result=>{
        let isSupport = result.enable;
    })

获取 token

API - getToken(number,CALLBACK)

初始化接口

参数说明

  • number:设置初始化超时时间,单位毫秒,合法范围是(0,30000],推荐设置为 5000-10000,默认值为 10000。

示例

jv.getToken(7000,result=>{
        let code = result.code;
        let token = result.content;
        let operator = result.operator;
    });

登录预取号

API - preLogin(number,CALLBACK)

验证当前运营商网络是否可以进行一键登录操作,该方法会缓存取号信息,提高一键登录效率。建议发起一键登录前先调用此方法。

参数说明

  • number:设置初始化超时时间,单位毫秒,合法范围是(0,30000],推荐设置为 5000-10000,默认值为 10000。

示例

jv.preLogin(7000,result=>{
        let code = result.code;
        let token = result.content;
    });

清除预取号缓存

API - clearPreLoginCach()

清除预取号缓存。

示例

jv.clearPreLoginCach();

请求授权一键登录

  • 一键登录需要依赖预取号结果,如果没有预取号,一键登录时会自动预取号。
  • 建议拉起授权页前,比如在开屏页或者业务入口页预先调用此接口进行预取号,可以提升授权页拉起速度,优化体验。
  • 一键登录请求成功后,不要频繁重复调用。运营商会限制单位时间内请求次数。
  • 不要在一键登录回调中重复调用预取号或者拉起授权页接口。

API - loginAuth(Object,CALLBACK,EVENTCALLBACK)

调起一键登录授权页面,在用户授权后获取 loginToken,同时支持授权页事件监听。

参数说明

  • Object
参数名称 参数类型 参数说明
timeout number 设置初始化超时时间,单位毫秒,合法范围是(0,30000],推荐设置为 5000-10000,默认值为 10000。
autoFinish boolean 是否自动关闭授权页,true - 是,false - 否
animationFlag boolean 拉起授权页时是否需要动画效果,true - 是,false - 否,默认 true。(仅作用与 iOS)

示例

jv.loginAuth({
        autoFinish:true,
        timeout:5000
    },result=>{
        // 结果监听
        let code = result.code;
        let loginToken = result.content;
        let operator = result.operator;

    },event=>{
        // 事件监听
        let code = result.code;
        let eventDesc = result.content;
    })

自定义授权页面样式

iOS 和 Android 分开设置

API - setCustomUIWithConfigAndroid

修改 Android 授权页面主题,支持传入竖屏和横屏两套config。sdk会根据当前横竖屏状态动态切换,需在 loginAuth 接口之前调用。

接口定义

// 设置一个 config 时应用全部
jv.setCustomUIWithConfigAndroid(JVerifyUIConfig)
// 设置两个 config 时,前者应用与竖屏配置,后者应用与横屏配置
jv.setCustomUIWithConfigAndroid(JVerifyUIConfig,JVerifyUIConfig)

参数说明

示例

jv.setCustomUIWithConfigAndroid({
    setNavColor:0xff000000,
    setLogBtnText:" 极光认证测试 ",
    setPrivacyState:false,
    setAppPrivacyColor:[0xff00f000,0xff000000]
})

API - setCustomUIWithConfigiOS

修改 iOS 授权页面主题,需在 loginAuth 接口之前调用。

接口定义

jv.setCustomUIWithConfigiOS(JVerifyUIConfig)

参数说明

示例

jv.setCustomUIWithConfigiOS({
    navColor:0xff000000,
    logBtnText:" 极光认证测试 ",
    privacyState:true,
    appPrivacyColor:[0xff000000,0xff000000]
})

错误码

code message 备注
1000 verify consistent 手机号验证一致
1001 verify not consistent 手机号验证不一致
1002 unknown result 未知结果
1003 token expired token失效
1004 sdk verify has been closed SDK 发起认证未开启
1005 包名和 AppKey 不匹配 请检查客户端配置的包名与官网对应 Appkey 应用下配置的包名是否一致
1006 frequency of verifying single number is beyond the maximum limit 同一号码自然日内认证消耗超过限制
1007 beyond daily frequency limit appKey 自然日认证消耗超过限制
1008 AppKey 非法 请到官网检查此应用信息中的 appkey,确认无误
1009 请到官网检查此应用的应用详情;更新应用中集成的极光 SDK 至最新
1010 verify interval is less than the minimum limit 同一号码连续两次提交认证间隔过短
1011 appSign invalid 应用签名错误,检查签名与 Portal 设置的是否一致
2000 内容为token 获取 token 成功
2001 fetch token failed 获取 token 失败
2002 init failed SDK 初始化失败
2003 network not reachable 网络连接不通
2004 get uid failed 极光服务注册失败
2005 request timeout 请求超时
2006 fetch config failed 获取应用配置失败
2007 内容为异常信息 验证遇到代码异常
2008 Token requesting, please try again later 正在获取 token 中,稍后再试
2009 verifying, please try again later 正在认证中,稍后再试
2010 don't have READ_PHONE_STATE permission 未开启读取手机状态权限
2011 内容为异常信息 获取配置时代码异常
2012 内容为异常信息 获取 token 时代码异常
2013 内容为具体错误原因 网络发生异常
2014 internal error while requesting token 请求 token 时发生内部错误
2016 network type not supported 当前网络环境不支持认证
4001 parameter invalid 参数错误。请检查参数,比如是否手机号格式不对
4018 没有足够的余额
4031 不是认证 SDK 用户
4032 获取不到用户配置
4033 appkey is not support login 不是一键登录用户
5000 bad server 服务器未知错误
6000 内容为token 获取 loginToken 成功
6001 fetch loginToken failed 获取 loginToken 失败
6002 fetch loginToken canceled 用户取消获取 loginToken
6003 UI 资源加载异常 未正常添加 sdk 所需的资源文件
6004 authorization requesting, please try again later 正在登录中,稍后再试
7000 preLogin success sdk 预取号成功
7001 preLogin failed sdk 预取号失败
7002 preLogin requesting, please try again later 正在预取号中,稍后再试
-994 网络连接超时
-996 网络连接断开
-997 注册失败/登录失败 (一般是由于没有网络造成的)如果确保设备网络正常,还是一直遇到此问题,则还有另外一个原因:JPush 服务器端拒绝注册。而这个的原因一般是:你当前 App 的 Android 包名以及 AppKey,与你在 Portal 上注册的应用的 Android 包名与 AppKey 不相同。

隐私、权限声明

1. 本插件需要申请的系统权限列表:

"android.permission.INTERNET", "android.permission.READ_PHONE_STATE", "android.permission.WRITE_EXTERNAL_STORAGE", "android.permission.ACCESS_NETWORK_STATE", "android.permission.ACCESS_WIFI_STATE", "android.permission.CHANGE_NETWORK_STATE", "android.permission.WRITE_SETTINGS", "android.permission.SYSTEM_ALERT_WINDOW", "android.permission.CHANGE_WIFI_STATE", "android.permission.GET_TASKS", "android.permission.VIBRATE", "android.permission.WAKE_LOCK"

2. 本插件采集的数据、发送的服务器地址、以及数据用途说明:

进行SDK初始化,和手机号码一键认证

3. 本插件是否包含广告,如包含需详细说明广告表达方式、展示频率:

许可协议

请参考开源项目地址的开源协议

使用中有什么不明白的地方,就向插件作者提问吧~ 我要提问