@@ -12,55 +12,112 @@ const LoginEvent = 'LoginEvent'; //登录事件
1212export default class JVerification {
1313
1414 /*
15- * 设置调试模式,默认关闭状态
16- *
17- * 该接口需在 init 接口之前调用,避免出现部分日志没打印的情况
18- * @param params = {"debug":boolean}
19- * */
20- static setLoggerEnable ( params ) {
15+ * 设置调试模式,默认关闭状态
16+ * 该接口需在 init 接口之前调用,避免出现部分日志没打印的情况
17+ * @param enable = boolean
18+ * */
19+ static setLoggerEnable ( enable ) {
2120 if ( Platform . OS == 'android' ) {
22- JVerificationModule . setDebugMode ( params ) ;
21+ JVerificationModule . setDebugMode ( enable ) ;
22+ } else {
23+ JVerificationModule . setDebug ( enable ) ;
2324 }
2425 }
2526
27+ /*
28+ * SDK初始化
29+ * @param params = {'time':int,'appkey':String,'channel':String,'advertisingId':String,'isProduction':boolean}
30+ * @param callback = (result) => {"code":int,'content':String}
31+ *
32+ * time:初始化超时时间,单位毫秒,合法范围是(0,30000],推荐设置为5000-10000,默认值为10000
33+ * appkey:极光系统应用唯一标识,必填 (仅ios)
34+ * channel:应用发布渠道,可选 (仅ios)
35+ * advertisingId:广告标识符,可选 (仅ios)
36+ * isProduction:是否生产环境。如果为开发状态,设置为false;如果为生产状态,应改为true。默认为false,可选 (仅ios)
37+ * */
2638 static init ( params , callback ) {
2739 if ( Platform . OS == 'android' ) {
2840 JVerificationModule . init ( params , callback ) ;
41+ } else {
42+ JVerificationModule . setupWithConfig ( params , callback ) ;
2943 }
3044 }
3145
46+ /*
47+ * 获取sdk初始化是否成功标识
48+ * @param callback = (result) => {"enable":boolean}
49+ * */
3250 static isInitSuccess ( callback ) {
3351 if ( Platform . OS == 'android' ) {
3452 JVerificationModule . isInitSuccess ( callback ) ;
53+ } else {
54+ JVerificationModule . isSetupClient ( callback ) ;
3555 }
3656 }
3757
58+ /*
59+ * SDK判断网络环境是否支持
60+ * @param callback = (result) => {"enable":boolean}
61+ * */
3862 static checkLoginEnable ( callback ) {
3963 if ( Platform . OS == 'android' ) {
4064 JVerificationModule . checkVerifyEnable ( callback ) ;
65+ } else {
66+ JVerificationModule . checkVerifyEnable ( callback ) ;
4167 }
4268 }
4369
44- static getToken ( params , callback ) {
45- if ( Platform . OS == 'android' ) {
46- JVerificationModule . getToken ( params , callback ) ;
47- }
70+ /*
71+ * SDK获取号码认证token
72+ * @param time : int
73+ * @param callback = (result) => {"code":int,'content':String,'operator':String}
74+ *
75+ * time:超时时间(毫秒),有效取值范围(0,10000],若小于等于0则取默认值5000.大于10000则取10000.为保证获取token的成功率,建议设置为3000-5000ms.
76+ * code:返回码,2000代表获取成功,其他为失败,详见错误码描述
77+ * content:成功时为token,可用于调用验证手机号接口。token有效期为1分钟,超过时效需要重新获取才能使用。失败时为失败信息
78+ * operator:成功时为对应运营商,CM代表中国移动,CU代表中国联通,CT代表中国电信。失败时可能为null
79+ * */
80+ static getToken ( time , callback ) {
81+ JVerificationModule . getToken ( time , callback ) ;
4882 }
4983
50- static preLogin ( params , callback ) {
51- JVerificationModule . preLogin ( params , callback ) ;
84+ /*
85+ * SDK获取号码认证token
86+ * @param time : int
87+ * @param callback = (result) => {"code":int,'content':String}
88+ *
89+ * time:超时时间(毫秒),有效取值范围(0,10000],若小于等于0则取默认值5000.大于10000则取10000, 为保证预取号的成功率,建议设置为3000-5000ms
90+ * code:返回码,7000代表获取成功,其他为失败,详见错误码描述
91+ * content:调用结果信息描述
92+ * */
93+ static preLogin ( time , callback ) {
94+ JVerificationModule . preLogin ( time , callback ) ;
5295 }
5396
97+ /*
98+ * SDK清除预取号缓存
99+ * */
54100 static clearPreLoginCache ( ) {
55101 JVerificationModule . clearPreLoginCache ( ) ;
56102 }
57103
58- static login ( params ) {
104+ /*
105+ * SDK请求授权一键登录
106+ * @param enable : boolean
107+ *
108+ * boolean:是否自动关闭授权页,true - 是,false - 否;若此字段设置为false,请在收到一键登录回调后调用SDK提供的关闭授权页面方法
109+ * */
110+ static login ( enable ) {
59111 if ( Platform . OS == 'android' ) {
60- JVerificationModule . loginAuth ( params ) ;
112+ JVerificationModule . loginAuth ( enable ) ;
113+ } else {
114+ JVerificationModule . getAuthorizationWithController ( enable ) ;
61115 }
62116 }
63117
118+ /*
119+ * SDK关闭授权页面
120+ * */
64121 static dismissLoginPage ( ) {
65122 if ( Platform . OS == 'android' ) {
66123 JVerificationModule . dismissLoginAuthActivity ( ) ;
@@ -70,121 +127,106 @@ export default class JVerification {
70127 /**
71128 * 设置一键登录页面样式
72129 * 均可选,需要在login前调用生效(ios需要将图片放入JVerificationResource.bundle)
73- * var config = {
74- * backgroundImage: string //背景图
130+ * var customConfigParams = {
131+ * backgroundImage: String //背景图
75132 *
76- * statusBarColorWithNav: boolean //状态栏与导航栏同色。仅在android 5.0以上设备生效
77- * statusBarDarkMode: boolean //状态栏暗色模式。仅在android 6.0以上设备生效。
78- * statusBarTransparent: boolean //状态栏是否透明。仅在android 4.4以上设备生效。
79133 * statusBarHidden: boolean //状态栏是否隐藏
134+ * statusBarMode: String //状态栏模式 light,dark
80135 *
81136 * navHidden: boolean //导航栏是否隐藏
82137 * navColor: int //导航栏颜色
138+ *
83139 * navTitle: string //导航栏标题
84140 * navTitleSize: int //导航栏标题文字字体大小(单位:sp)
85141 * navTitleColor: number //导航栏标题文字颜色
86- * navTransparent: boolean //导航栏背景是否透明,默认不透明
87142 *
88- * navReturnBtnHidden: boolean //导航栏返回按钮是否隐藏
89- * navReturnBtnImage: string //导航栏左侧返回按钮图标
90- * navReturnBtnWidth: int //导航栏返回按钮宽度
91- * navReturnBtnHeight: int //导航栏返回按钮高度
92- * navReturnBtnOffsetX: int //导航栏返回按钮距屏幕左侧偏移
93- * navReturnBtnRightOffsetX: int //导航栏返回按钮距屏幕右侧偏移
94- * navReturnBtnOffsetY: int //导航栏返回按钮距上端偏移
143+ * navReturnHidden: boolean //导航栏返回按钮是否隐藏
144+ * navReturnImage: string //导航栏左侧返回按钮图标
145+ * navReturnX: int //导航栏返回按钮距屏幕左侧偏移 (仅Android)
146+ * navReturnY: int //导航栏返回按钮距屏幕右侧偏移 (仅Android)
147+ * navReturnW: int //导航栏返回按钮宽度 (仅Android)
148+ * navReturnH: int //导航栏返回按钮高度 (仅Android)
95149 *
96150 * logoHidden: boolean //logo是否隐藏
97151 * logoImage: string //logo(android默认为应用图标;ios默认无)
98- * logoWidth: int //logo宽
99- * logoHeight: int //logo高
100- * logoOffsetX: int //logo相对于屏幕左边x轴偏移
101- * logoOffsetY: int //logo相对于标题栏下边缘y偏移
102- * logoOffsetBottomY: int //logo相对于屏幕底部y轴偏移
152+ * logoX: int //logo相对于屏幕左边x轴偏移
153+ * logoY: int //logo相对于标题栏下边缘y偏移
154+ * logoW: int //logo宽
155+ * logoH: int //logo高
103156 *
104157 * numberSize: int //手机号码字体大小(单位:sp)
105158 * numberColor: int //手机号码字体颜色
106- * numberWidth: int //号码栏宽度
107- * numberHeight: int //号码栏高度
108- * numOffsetX: int //号码栏相对于屏幕左边x轴偏移
109- * numOffsetY: int //号码栏相对于标题栏下边缘y偏移
110- * numberOffsetBottomY: int //号码栏相对于屏幕底部y轴偏移
159+ * numberX: int //号码栏相对于屏幕左边x轴偏移
160+ * numberY: int //号码栏相对于标题栏下边缘y偏移
161+ * numberW: int //号码栏宽度
162+ * numberH: int //号码栏高度
111163 *
112164 * sloganHidden: boolean //slogan是否隐藏
113165 * sloganTextSize: int //slogan字体大小
114166 * sloganTextColor: int //slogan文字颜色
115- * sloganOffsetX: int //slogan相对于屏幕左边x轴偏移
116- * sloganOffsetY: int //slogan相对于标题栏下边缘y偏移
117- * sloganBottomOffsetY: int //slogan相对于屏幕底部下边缘y轴偏移
167+ * sloganX: int //slogan相对于屏幕左边x轴偏移
168+ * sloganY: int //slogan相对于标题栏下边缘y偏移
169+ * sloganW: int, //slogan宽度 (仅iOS)
170+ * sloganH: int, //slogan高度 (仅iOS)
118171 *
119172 * loginBtnText: string, //登录按钮文字
120173 * loginBtnTextSize: int //登录按钮字体大小
121174 * loginBtnTextColor: int //登录按钮文字颜色
175+ *
122176 * loginBtnImage: string //登录按钮selector选择样式 (仅android)
123177 * loginBtnNormalImage: string //登录按钮正常图片 (仅ios,三个同时设置生效)
124- * loginBtnUnableImage: string //登录按钮失效图片 (仅ios,三个同时设置生效)
125- * loginBtnPressedImage: string //登录按钮按下图片 (仅ios,三个同时设置生效)
126- * loginBtnWidth: int //登录按钮宽度
127- * loginBtnHeight: int //登录按钮高度
128- * loginBtnOffsetX: int //登录按钮相对于屏幕左边x轴偏移
129- * loginBtnOffsetY: int //登录按钮相对于标题栏下边缘y偏移
130- * loginBtnBottomOffsetY: int //登录按钮相对屏幕底部y轴偏移
131- *
132- * privacyOneName: string //隐私条款一名称
133- * privacyOneUrl: string //隐私条款一链接
134- * privacyTwoName: string //隐私条款二名称
135- * privacyTwoUrl: string //隐私条款二链接
136- * privacyNameColor: int //隐私条款名称颜色
137- * privacyUrlColor: int //隐私条款链接颜色
138- * privacyTextOne: String //隐私条款名称外的文字
139- * privacyTextTwo: String //隐私条款名称外的文字
140- * privacyTextThree: String //隐私条款名称外的文字
141- * privacyTextFour: String //隐私条款名称外的文字
142- * privacyTextWidth: int //隐私条款名称外的文字栏宽度(单位:dp)
143- * privacyOffsetX: int //隐私条款相对于屏幕左边x轴偏移
144- * privacyOffsetY: int //隐私条款相对于授权页面底部下边缘y偏移
145- * privacyTopOffsetY: int //隐私条款相对导航栏下端y轴偏移
146- * privacyTextGravityCenter: boolean //隐私条款文字是否居中对齐(默认左对齐)
147- * privacyWithBookTitleMark: boolean //隐私条款运营商协议名是否加书名号
148- *
178+ * loginBtnDisabledImage: string //登录按钮失效图片 (仅ios,三个同时设置生效)
179+ * loginBtnSelectedImage: string //登录按钮按下图片 (仅ios,三个同时设置生效)
180+ * loginBtnX: int //登录按钮相对于屏幕左边x轴偏移
181+ * loginBtnY: int //登录按钮相对于标题栏下边缘y偏移
182+ * loginBtnW: int //登录按钮宽度
183+ * loginBtnH: int //登录按钮高度
184+ *
185+ * privacyOne: StringArray //[隐私条款一名称,隐私条款一链接]
186+ * privacyTwo: StringArray //[隐私条款二名称,隐私条款二链接]
187+ * privacyColor: intArray //[隐私条款名称颜色,隐私条款链接颜色]
188+ * privacyText: StringArray //[隐私条款名称外的文字,隐私条款名称外的文字,隐私条款名称外的文字,隐私条款名称外的文字]
189+ * privacyTextSize: int //隐私条款文字字体大小
190+ * privacyTextGravityMode: String //隐私条款文本对齐方式,目前仅支持 left、center
191+ * privacyBookSymbolEnable: boolean //隐私条款运营商协议名是否加书名号
192+ * privacyX:int //隐私条款相对于屏幕左边x轴偏移
193+ * privacyY:int //隐私条款相对于导航栏下边缘y偏移
194+ * privacyW:int //隐私条款宽度
195+ * privacyH:int //隐私条款高度
196+ *
149197 * privacyCheckboxHidden: boolean //隐私条款checkbox是否隐藏
150- * privacyCheckboxSize: boolean //隐私条款checkbox尺寸
151- * privacyCheckboxImage: string //隐私条款复选框选中图片
152- * privacyUnCheckboxImage: string //隐私条款复选框未选中图片
153- * privacyCheckboxState: boolean //隐私条款默认选中状态。默认不选中
154- * privacyCheckboxInCenter: boolean //隐私条款checkbox是否相对协议文字纵向居中。默认居顶
155- * privacyToastEnable: boolean //协议栏checkbox未选中时,点击登录按钮是否弹出toast提示用户勾选协议,默认不弹。支持自定义Toast。
198+ * privacyCheckEnable: boolean //隐私条款默认选中状态。默认不选中
199+ * privacyCheckedImage: string //隐私条款复选框选中图片
200+ * privacyUncheckedImage: string //隐私条款复选框未选中图片
156201 *
157202 * privacyWebNavColor: int //协议展示web页面导航栏背景颜色
158- * privacyWebNavTitleColor: int //协议展示web页面导航栏标题文字颜色
203+ * privacyWebNavTitle:String //协议页导航栏标题(仅iOS)
159204 * privacyWebNavTitleSize: int //协议展示web页面导航栏标题文字大小
160- * privacyWebNavReturnBtnImage: String //协议展示web页面导航栏返回按钮图标
205+ * privacyWebNavTitleColor: int //协议展示web页面导航栏标题文字颜色
206+ * privacyWebNavReturnImage: String //协议展示web页面导航栏返回按钮图标
207+ * }
208+ *
209+ * var customViewParams = {
210+ * 'customViewName':String, //在index.js中注册的component
211+ * 'customViewPoint':StringArray //[int,int] 基于屏幕左上角的x,y坐标点
161212 * }
213+ *
214+ * 关于图片资源,Android请将图片放到res/drawable目录下,iOS请将图片放到JVerificationResour.bundle
215+ * 关于颜色,为colorInt,可在Android代码中直观的看到数值,例如Color.BLACK = -16777216,Color.WHITE = -1
216+ * 关于x,y,w,h,为保障显示效果,请同时设置。数值为
162217 */
163- static setLoginPageConfig ( params ) {
164- if ( Platform . OS == 'android' ) {
165- JVerificationModule . setCustomUIWithConfig ( params ) ;
166- }
167- }
168-
169- static addLoginLoadingView ( params ) {
218+ static addLoginCustomConfig ( customConfigParams , customViewParams ) {
170219 if ( Platform . OS == 'android' ) {
171-
220+ JVerificationModule . setCustomUIWithConfig ( customConfigParams , customViewParams ) ;
221+ } else {
222+ JVerificationModule . customUIWithConfig ( customConfigParams , customViewParams ) ;
172223 }
173224 }
174225
175- static addLoginCustomView ( params ) {
176- if ( Platform . OS == 'android' ) {
177- JVerificationModule . addCustomView ( params ) ;
178- }
179- }
180-
181- static addLoginNavCustomView ( params ) {
182- if ( Platform . OS == 'android' ) {
183- JVerificationModule . addNavControlView ( params ) ;
184- }
185- }
186-
187- //事件监听
226+ /*
227+ * 登录事件监听
228+ * @param callback = result => {'code':int,'content':String,'operator':String}
229+ * */
188230 static addLoginEventListener ( callback ) {
189231 listeners [ callback ] = DeviceEventEmitter . addListener (
190232 LoginEvent , result => {
0 commit comments