expo-geetest-onelogin 0.1.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (46) hide show
  1. package/.eslintrc.js +5 -0
  2. package/LICENSE +21 -0
  3. package/README.md +2 -0
  4. package/android/build.gradle +91 -0
  5. package/android/src/main/AndroidManifest.xml +2 -0
  6. package/android/src/main/java/expo/modules/geetestonelogin/DTO.kt +378 -0
  7. package/android/src/main/java/expo/modules/geetestonelogin/ExpoGeetestOneloginModule.kt +271 -0
  8. package/android/src/main/java/expo/modules/geetestonelogin/ExpoGeetestOneloginView.kt +7 -0
  9. package/build/ExpoGeetestOnelogin.types.d.ts +770 -0
  10. package/build/ExpoGeetestOnelogin.types.d.ts.map +1 -0
  11. package/build/ExpoGeetestOnelogin.types.js +2 -0
  12. package/build/ExpoGeetestOnelogin.types.js.map +1 -0
  13. package/build/ExpoGeetestOneloginModule.d.ts +3 -0
  14. package/build/ExpoGeetestOneloginModule.d.ts.map +1 -0
  15. package/build/ExpoGeetestOneloginModule.js +5 -0
  16. package/build/ExpoGeetestOneloginModule.js.map +1 -0
  17. package/build/ExpoGeetestOneloginModule.web.d.ts +7 -0
  18. package/build/ExpoGeetestOneloginModule.web.d.ts.map +1 -0
  19. package/build/ExpoGeetestOneloginModule.web.js +12 -0
  20. package/build/ExpoGeetestOneloginModule.web.js.map +1 -0
  21. package/build/ExpoGeetestOneloginView.d.ts +4 -0
  22. package/build/ExpoGeetestOneloginView.d.ts.map +1 -0
  23. package/build/ExpoGeetestOneloginView.js +7 -0
  24. package/build/ExpoGeetestOneloginView.js.map +1 -0
  25. package/build/ExpoGeetestOneloginView.web.d.ts +4 -0
  26. package/build/ExpoGeetestOneloginView.web.d.ts.map +1 -0
  27. package/build/ExpoGeetestOneloginView.web.js +6 -0
  28. package/build/ExpoGeetestOneloginView.web.js.map +1 -0
  29. package/build/index.d.ts +40 -0
  30. package/build/index.d.ts.map +1 -0
  31. package/build/index.js +132 -0
  32. package/build/index.js.map +1 -0
  33. package/expo-module.config.json +9 -0
  34. package/ios/Bridging-Header.h +13 -0
  35. package/ios/DTO.swift +1031 -0
  36. package/ios/ExpoGeetestOnelogin.podspec +29 -0
  37. package/ios/ExpoGeetestOneloginModule.swift +342 -0
  38. package/ios/ExpoGeetestOneloginView.swift +7 -0
  39. package/package.json +67 -0
  40. package/src/ExpoGeetestOnelogin.types.ts +939 -0
  41. package/src/ExpoGeetestOneloginModule.ts +5 -0
  42. package/src/ExpoGeetestOneloginModule.web.ts +13 -0
  43. package/src/ExpoGeetestOneloginView.tsx +11 -0
  44. package/src/ExpoGeetestOneloginView.web.tsx +11 -0
  45. package/src/index.ts +174 -0
  46. package/tsconfig.json +9 -0
package/ios/DTO.swift ADDED
@@ -0,0 +1,1031 @@
1
+ //
2
+ // DTO.swift
3
+ // ExpoGeetestOnelogin
4
+ //
5
+ // Created by xxxxp on 7/19/23.
6
+ //
7
+
8
+ import ExpoModulesCore
9
+
10
+ struct RNOneLoginThemeConfigStatusBar : Record {
11
+ @Field
12
+ var statusBarColor: UIColor = UIColor.clear
13
+ @Field
14
+ var statusBarStyle: String = "UserInterfaceStyle.UNSPECIFIED"
15
+ @Field
16
+ var bgLayoutInStatusBar: Bool = false
17
+ }
18
+
19
+ struct RNOneLoginThemeConfigDialogTheme : Record {
20
+ @Field
21
+ var isDialogTheme: Bool = false
22
+ @Field
23
+ var dialogWidth: Int = 0
24
+ @Field
25
+ var dialogHeight: Int = 0
26
+ @Field
27
+ var dialogX: Int = 0
28
+ @Field
29
+ var dialogY: Int = 0
30
+ @Field
31
+ var isDialogBottom: Bool = false
32
+ @Field
33
+ var isWebViewDialogTheme: Bool = false
34
+ }
35
+
36
+ struct RNOneLoginThemeConfigAuthNavLayout : Record {
37
+ @Field
38
+ var navColor: UIColor = UIColor.clear
39
+ @Field
40
+ var authNavHeight: Int = 0
41
+ @Field
42
+ var authNavTransparent: Bool = false
43
+ @Field
44
+ var authNavGone: Bool = false
45
+ }
46
+
47
+ struct RNOneLoginThemeConfigAuthNavTextView : Record {
48
+ @Field
49
+ var navText: String = ""
50
+ @Field
51
+ var navTextColor: UIColor = UIColor.clear
52
+ @Field
53
+ var navTextSize: Int = 0
54
+ @Field
55
+ var navWebTextNormal: Bool = false
56
+ @Field
57
+ var navWebText: String = ""
58
+ @Field
59
+ var navWebTextColor: UIColor = UIColor.clear
60
+ @Field
61
+ var navWebTextSize: Int = 0
62
+ @Field
63
+ var navTextMargin: Int = 0
64
+ }
65
+
66
+ struct RNOneLoginThemeConfigSwitchViewLayout : Record {
67
+ @Field
68
+ var switchImgPath: String = ""
69
+ @Field
70
+ var switchWidth: Int = 0
71
+ @Field
72
+ var switchHeight: Int = 0
73
+ }
74
+
75
+ struct RNOneLoginThemeConfigLogBtnTextView : Record {
76
+ @Field
77
+ var logBtnText: String = ""
78
+ @Field
79
+ var logBtnColor: UIColor = UIColor.clear
80
+ @Field
81
+ var logBtnTextSize: Int = 0
82
+ }
83
+
84
+ struct RNOneLoginThemeConfigLogBtnLoadingView : Record {
85
+ @Field
86
+ var loadingView: String = ""
87
+ @Field
88
+ var loadingViewWidth: Int = 0
89
+ @Field
90
+ var loadingViewHeight: Int = 0
91
+ @Field
92
+ var loadingViewOffsetRight: Int = 0
93
+ }
94
+
95
+ struct RNOneLoginThemeConfigPrivacyClauseText : Record {
96
+ @Field
97
+ var clauseNameOne: String = ""
98
+ @Field
99
+ var clauseUrlOne: String = ""
100
+ @Field
101
+ var clauseNameTwo: String = ""
102
+ @Field
103
+ var clauseUrlTwo: String = ""
104
+ @Field
105
+ var clauseNameThree: String = ""
106
+ @Field
107
+ var clauseUrlThree: String = ""
108
+ }
109
+
110
+ struct RNOneLoginThemeConfigPrivacyClauseView: Record {
111
+ @Field
112
+ var baseClauseColor: UIColor = UIColor.clear
113
+ @Field
114
+ var clauseColor: UIColor = UIColor.clear
115
+ @Field
116
+ var privacyClauseTextSize: Int = 0
117
+ }
118
+
119
+ struct RNOneLoginThemeConfigPrivacyTextView: Record {
120
+ @Field
121
+ var privacyTextViewTv1: String = ""
122
+ @Field
123
+ var privacyTextViewTv2: String = ""
124
+ @Field
125
+ var privacyTextViewTv3: String = ""
126
+ @Field
127
+ var privacyTextViewTv4: String = ""
128
+ }
129
+
130
+ struct RNOneLoginThemeConfigAuthNavTextViewTypeface: Record {
131
+ @Field
132
+ var navTextTypeface: String = ""
133
+ @Field
134
+ var navWebTextTypeface: String = ""
135
+ }
136
+
137
+ struct RNOneLoginThemeConfigLogoImgView: Record {
138
+ @Field
139
+ var logoImgPath: String = ""
140
+ @Field
141
+ var logoWidth: Int = 0
142
+ @Field
143
+ var logoHeight: Int = 0
144
+ @Field
145
+ var logoHidden: Bool = false
146
+ @Field
147
+ var logoOffsetY: Int = 0
148
+ @Field
149
+ var logoOffsetY_B: Int = 0
150
+ @Field
151
+ var logoOffsetX: Int = 0
152
+ }
153
+
154
+ struct RNOneLoginThemeConfigAuthNavReturnImgView: Record {
155
+ @Field
156
+ var returnImgPath: String = ""
157
+ @Field
158
+ var returnImgWidth: Int = 0
159
+ @Field
160
+ var returnImgHeight: Int = 0
161
+ @Field
162
+ var returnImgHidden: Bool = false
163
+ @Field
164
+ var returnImgOffsetX: Int = 0
165
+ }
166
+
167
+ struct RNOneLoginThemeConfigNumberView: Record {
168
+ @Field
169
+ var numberColor: UIColor = UIColor.clear
170
+ @Field
171
+ var numberSize: Int = 0
172
+ @Field
173
+ var numberOffsetY: Int = 0
174
+ @Field
175
+ var numberOffsetY_B: Int = 0
176
+ @Field
177
+ var numberOffsetX: Int = 0
178
+ }
179
+
180
+ struct RNOneLoginThemeConfigSloganView: Record {
181
+ @Field
182
+ var sloganColor: UIColor = UIColor.clear
183
+ @Field
184
+ var sloganSize: Int = 0
185
+ @Field
186
+ var sloganOffsetY: Int = 0
187
+ @Field
188
+ var sloganOffsetY_B: Int = 0
189
+ @Field
190
+ var sloganOffsetX: Int = 0
191
+ }
192
+
193
+ struct RNOneLoginThemeConfigLogBtnLayout: Record {
194
+ @Field
195
+ var logBtnImgPath: String = ""
196
+ @Field
197
+ var logBtnUncheckedImgPath: String = ""
198
+ @Field
199
+ var logBtnWidth: Int = 0
200
+ @Field
201
+ var logBtnHeight: Int = 0
202
+ @Field
203
+ var logBtnOffsetY: Int = 0
204
+ @Field
205
+ var logBtnOffsetY_B: Int = 0
206
+ @Field
207
+ var logBtnOffsetX: Int = 0
208
+ }
209
+
210
+ struct RNOneLoginThemeConfigSwitchView: Record {
211
+ @Field
212
+ var switchText: String = ""
213
+ @Field
214
+ var switchColor: UIColor = UIColor.clear
215
+ @Field
216
+ var switchSize: Int = 0
217
+ @Field
218
+ var switchHidden: Bool = false
219
+ @Field
220
+ var switchOffsetY: Int = 0
221
+ @Field
222
+ var switchOffsetY_B: Int = 0
223
+ @Field
224
+ var switchOffsetX: Int = 0
225
+ }
226
+
227
+ struct RNOneLoginThemeConfigPrivacyCheckBox: Record {
228
+ @Field
229
+ var unCheckedImgPath: String = ""
230
+ @Field
231
+ var checkedImgPath: String = ""
232
+ @Field
233
+ var privacyState: Bool = false
234
+ @Field
235
+ var privacyCheckBoxWidth: Int = 0
236
+ @Field
237
+ var privacyCheckBoxHeight: Int = 0
238
+ @Field
239
+ var privacyCheckBoxOffsetY: Int = 0
240
+ @Field
241
+ var privacyCheckBoxMarginRight: Int = 0
242
+ }
243
+
244
+ struct RNOneLoginThemeConfigPrivacyLayout: Record {
245
+ @Field
246
+ var isUseNormalWebActivity: Bool = false
247
+ @Field
248
+ var privacyLayoutWidth: Int = 0
249
+ @Field
250
+ var privacyOffsetY: Int = 0
251
+ @Field
252
+ var privacyOffsetY_B: Int = 0
253
+ @Field
254
+ var privacyOffsetX: Int = 0
255
+ @Field
256
+ var gravity: Int = 0
257
+ }
258
+
259
+ struct RNOneLoginThemeConfigPrivacyClauseViewTypeface: Record {
260
+ @Field
261
+ var privacyClauseBaseTypeface: String = ""
262
+ @Field
263
+ var privacyClauseTypeface: String = ""
264
+ }
265
+
266
+ struct RNOLAuthViewModelNSAttributedString: Record {
267
+ @Field var backgroundColor: String;
268
+ @Field var string: String;
269
+
270
+ func build() -> NSAttributedString {
271
+ return NSAttributedString(string: string, attributes: [NSAttributedString.Key.backgroundColor : backgroundColor])
272
+ }
273
+ }
274
+
275
+ struct RNOLAuthViewModelOLRect: Record {
276
+ /**
277
+ 竖屏时
278
+ 导航栏隐藏时,为控件顶部到状态栏的距离;导航栏显示时,为控件顶部到导航栏底部的距离
279
+ 弹窗时
280
+ 为控件顶部到弹窗顶部的距离
281
+ */
282
+ @Field
283
+ var portraitTopYOffset: CGFloat = 0
284
+
285
+ /**
286
+ 竖屏时
287
+ 控件的x轴中点到屏幕x轴中点的距离,默认为0
288
+ 弹窗时
289
+ 控件的x轴中点到弹窗x轴中点的距离,默认为0
290
+ */
291
+ @Field
292
+ var portraitCenterXOffset: CGFloat = 0
293
+
294
+ /**
295
+ 竖屏时
296
+ 控件的左边缘到屏幕左边缘的距离,默认为0
297
+ 弹窗时
298
+ 控件的左边缘到屏幕左边缘的距离,默认为0
299
+
300
+ portraitLeftXOffset与portraitCenterXOffset设置一个即可,portraitLeftXOffset优先级大于portraitCenterXOffset,
301
+ 设置此属性时,portraitCenterXOffset属性失效
302
+ */
303
+ @Field
304
+ var portraitLeftXOffset: CGFloat = 0;
305
+
306
+ /**
307
+ 横屏时
308
+ 导航栏隐藏时,为控件顶部到屏幕顶部的距离;导航栏显示时,为控件顶部到导航栏底部的距离
309
+ 弹窗时
310
+ 为控件顶部到弹窗顶部的距离
311
+ */
312
+ var landscapeTopYOffset: CGFloat = 0;
313
+
314
+ /**
315
+ 横屏时
316
+ 控件的x轴中点到屏幕x轴中点的距离,默认为0
317
+ 弹窗时
318
+ 控件的x轴中点到弹窗x轴中点的距离,默认为0
319
+ */
320
+ var landscapeCenterXOffset: CGFloat = 0;
321
+
322
+ /**
323
+ 横屏时
324
+ 控件的左边缘到屏幕左边缘的距离,默认为0
325
+ 弹窗时
326
+ 控件的左边缘到屏幕左边缘的距离,默认为0
327
+
328
+ landscapeLeftXOffset与landscapeCenterXOffset设置一个即可,landscapeLeftXOffset优先级大于landscapeCenterXOffset,
329
+ 设置此属性时,landscapeCenterXOffset属性失效
330
+ */
331
+ @Field var landscapeLeftXOffset: CGFloat = 0;
332
+
333
+ /**
334
+ 控件大小,只有宽度、高度同时大于0,设置的size才会生效,否则为控件默认的size
335
+ */
336
+ @Field var size: CGSize = CGSize.zero;
337
+
338
+ func build() -> OLRect {
339
+ return OLRect(portraitTopYOffset: portraitTopYOffset, portraitCenterXOffset: portraitCenterXOffset, portraitLeftXOffset: portraitLeftXOffset, landscapeTopYOffset: landscapeTopYOffset, landscapeCenterXOffset: landscapeCenterXOffset, landscapeLeftXOffset: landscapeLeftXOffset, size: size)
340
+ }
341
+ }
342
+ struct RNOLAuthViewModelUIFontDescriptor: Record {
343
+ @Field var textStyle: String = ""
344
+ @Field var size: CGFloat = 24
345
+ }
346
+ struct RNOLAuthViewModelUIFont: Record {
347
+ @Field var name: String = ""
348
+ @Field var size: CGFloat = 24
349
+ @Field var fontAttributes: RNOLAuthViewModelUIFontDescriptor? = nil
350
+ func build() -> UIFont {
351
+ return UIFont(name: name, size: size)!
352
+ }
353
+ }
354
+ struct RNUImage: Record {
355
+ @Field var named: String?
356
+ func build() -> UIImage {
357
+ let image = UIImage.init(named: named!)!
358
+ return image
359
+ }
360
+ }
361
+ struct RNUIImageView: Record {
362
+ @Field var frame: CGRect?
363
+ @Field var uiImage: RNUImage?
364
+ func build() -> UIImageView {
365
+ let imageView = UIImageView.init(frame: frame!)
366
+ imageView.image = uiImage?.build()
367
+ return imageView
368
+ }
369
+ }
370
+ struct RNUIButton: Record {
371
+ @Field var frame: CGRect?
372
+ @Field var uiImage: RNUImage?
373
+ @Field var callbackId: Int?
374
+ func build() -> UIButton {
375
+ let button = UIButton.init(frame: frame!)
376
+ button.setImage(uiImage?.build(), for: UIControl.State.normal)
377
+ button.adjustsImageWhenHighlighted = false
378
+ if (callbackId != nil) {
379
+ button.tag = callbackId!
380
+ }
381
+ return button
382
+ }
383
+ }
384
+ struct RNOLPrivacyTermItem: Record {
385
+ @Field var title: String?
386
+ @Field var linkURL: URL?
387
+ func build() -> OLPrivacyTermItem {
388
+ return OLPrivacyTermItem.init(title: title!, linkURL: linkURL!)
389
+ }
390
+ }
391
+ struct RNNSAttributedStringKey: Record {
392
+ @Field var foregroundColor: UIColor = UIColor.clear
393
+ @Field var backgroundColor: UIColor = UIColor.clear
394
+ @Field var paragraphStyle: RNNSMutableParagraphStyle?
395
+ func build() -> Dictionary<NSAttributedString.Key, Any> {
396
+ return [NSAttributedString.Key.foregroundColor: foregroundColor, NSAttributedString.Key.backgroundColor: backgroundColor, NSAttributedString.Key.paragraphStyle: paragraphStyle?.build() ?? NSMutableParagraphStyle.init()]
397
+ }
398
+ }
399
+ struct RNFunction: Record {
400
+ @Field var callbackId: Int
401
+ }
402
+ struct RNNSMutableParagraphStyle: Record {
403
+ @Field var lineSpacing: CGFloat?
404
+ @Field var paragraphSpacing: CGFloat?
405
+ @Field var firstLineHeadIndent: CGFloat?
406
+ var alignment: NSTextAlignment = NSTextAlignment.left
407
+ func build() -> NSMutableParagraphStyle {
408
+ let style = NSMutableParagraphStyle.init()
409
+ style.lineSpacing = lineSpacing ?? 1.33
410
+ style.paragraphSpacing = 0
411
+ style.lineBreakMode = NSLineBreakMode.byWordWrapping
412
+ style.firstLineHeadIndent = 0
413
+ style.alignment = alignment
414
+ return style
415
+ }
416
+ }
417
+ struct RNOLAuthViewModel: Record {
418
+ // Status Bar/状态栏
419
+
420
+ /**
421
+ 状态栏样式。 默认 `UIStatusBarStyleDefault`。
422
+ */
423
+ @Field var statusBarStyle: String?; // UIStatusBarStyle
424
+
425
+ // Navigation/导航
426
+
427
+ /**
428
+ 导航栏标题距离屏幕左右两边的间距。默认为36,隐私条款导航栏保持一致。
429
+ */
430
+ @Field var navTextMargin: Double?;
431
+ /**
432
+ 授权页导航的标题。默认为空字符串。
433
+ */
434
+ @Field var naviTitle: RNOLAuthViewModelNSAttributedString? = nil;
435
+
436
+ /**
437
+ 授权页导航的背景颜色。默认白色。
438
+ */
439
+ @Field var naviBgColor: UIColor? = nil;
440
+
441
+ /**
442
+ 授权页导航左边的返回按钮的图片。默认黑色系统样式返回图片。
443
+ */
444
+ @Field var naviBackImage: RNUImage?;
445
+
446
+ /**
447
+ 授权页导航右边的自定义控件。
448
+ */
449
+ @Field var naviRightControl: String = "";
450
+
451
+ /**
452
+ 导航栏隐藏。默认不隐藏。
453
+ */
454
+ @Field var naviHidden: Bool?;
455
+
456
+ /**
457
+ 返回按钮位置及大小,返回按钮最大size为CGSizeMake(40, 40)。
458
+ */
459
+ @Field var backButtonRect: RNOLAuthViewModelOLRect?;
460
+
461
+ /**
462
+ 返回按钮隐藏。默认不隐藏。
463
+ */
464
+ @Field var backButtonHidden: Bool?;
465
+
466
+ /**
467
+ * 点击授权页面返回按钮的回调
468
+ */
469
+ // @Field var clickBackButtonBlock: OLClickBackButtonBlock;
470
+
471
+ // Logo/图标
472
+
473
+ /**
474
+ 授权页面上展示的图标。默认为 "OneLogin" 图标。
475
+ */
476
+ @Field var appLogo: RNUImage? = nil;
477
+
478
+ /**
479
+ Logo 位置及大小。
480
+ */
481
+ @Field var logoRect: RNOLAuthViewModelOLRect?;
482
+
483
+ /**
484
+ Logo 图片隐藏。默认不隐藏。
485
+ */
486
+ @Field var logoHidden: Bool? = nil;
487
+
488
+ /**
489
+ logo圆角,默认为0。
490
+ */
491
+ @Field var logoCornerRadius: CGFloat?;
492
+
493
+ // Phone Number Preview/手机号预览
494
+
495
+ /**
496
+ 号码预览文字的颜色。默认黑色。
497
+ */
498
+ @Field var phoneNumColor: UIColor?;
499
+
500
+ /**
501
+ 号码预览文字的字体。默认粗体,24pt。
502
+ */
503
+ @Field var phoneNumFont: RNOLAuthViewModelUIFont? = nil
504
+
505
+ /**
506
+ 号码预览 位置及大小
507
+ */
508
+ @Field var phoneNumRect: RNOLAuthViewModelOLRect? = nil;
509
+
510
+ /**
511
+ 号码富文本,默认为空。
512
+ */
513
+ @Field var attrPhone: RNOLAuthViewModelNSAttributedString? = nil;
514
+
515
+ // Switch Button/切换按钮
516
+
517
+ /**
518
+ 授权页切换账号按钮的文案。默认为“切换账号”。
519
+ */
520
+ @Field var switchButtonText: String?;
521
+
522
+ /**
523
+ 授权页切换账号按钮的颜色。默认蓝色。
524
+ */
525
+ @Field var switchButtonColor: UIColor?
526
+
527
+ /**
528
+ 授权页切换账号按钮背景颜色。默认为 nil。
529
+ */
530
+ @Field var switchButtonBackgroundColor: UIColor? = nil;
531
+
532
+ /**
533
+ 授权页切换账号的字体。默认字体,15pt。
534
+ */
535
+ @Field var switchButtonFont: RNOLAuthViewModelUIFont?;
536
+
537
+ /**
538
+ 授权页切换账号按钮 位置及大小。
539
+ */
540
+ @Field var switchButtonRect: RNOLAuthViewModelOLRect?;
541
+
542
+ /**
543
+ 隐藏切换账号按钮。默认不隐藏。
544
+ */
545
+ @Field var switchButtonHidden: Bool;
546
+
547
+ /**
548
+ * 点击授权页面切换账号按钮的回调
549
+ */
550
+ @Field var clickSwitchButtonBlock: RNFunction?;
551
+
552
+ // Authorization Button/认证按钮
553
+
554
+ /**
555
+ 授权页认证按钮的背景图片, @[正常状态的背景图片, 不可用状态的背景图片, 高亮状态的背景图片]。默认正常状态为蓝色纯色, 不可用状态的背景图片时为灰色, 高亮状态为灰蓝色。
556
+ */
557
+ @Field var authButtonImages: Array<RNUImage>?;
558
+
559
+ /**
560
+ 授权按钮文案。默认白色的"一键登录"。
561
+ */
562
+ @Field var authButtonTitle: RNOLAuthViewModelNSAttributedString?;
563
+
564
+ /**
565
+ 授权按钮 位置及大小。
566
+ */
567
+ @Field var authButtonRect: RNOLAuthViewModelOLRect?;
568
+
569
+ /**
570
+ 授权按钮圆角,默认为0。
571
+ */
572
+ @Field var authButtonCornerRadius: CGFloat = 0;
573
+
574
+ /**
575
+ * 点击授权页面授权按钮的回调,用于监听授权页面登录按钮的点击
576
+ */
577
+ @Field var clickAuthButtonBlock: RNFunction?;
578
+
579
+ /**
580
+ * 未勾选隐私条款时点击授权页面登录按钮的回调, 可用于自定义授权弹窗. 当返回 YES 时, 可以在 block 中添加自定义操作
581
+ */
582
+ // @property (nullable, nonatomic, copy) OLCustomDisabledAuthActionBlock customDisabledAuthActionBlock;
583
+
584
+ /**
585
+ * 自定义授权页面登录按钮点击事件,用于完全接管授权页面点击事件,当返回 YES 时,可以在 block 中添加自定义操作
586
+ */
587
+ // @property (nullable, nonatomic, copy) OLCustomAuthActionBlock customAuthActionBlock;
588
+
589
+ // Slogan/口号标语
590
+
591
+ /**
592
+ Slogan 文案。
593
+ */
594
+ @Field var sloganText: String;
595
+
596
+ /**
597
+ Slogan 位置及大小。
598
+ */
599
+ @Field var sloganRect: RNOLAuthViewModelOLRect?;
600
+
601
+ /**
602
+ Slogan 文字颜色。默认灰色。
603
+ */
604
+ @Field var sloganTextColor: UIColor?;
605
+
606
+ /**
607
+ Slogan字体。默认字体, 12pt。
608
+ */
609
+ @Field var sloganTextFont: RNOLAuthViewModelUIFont?;
610
+
611
+ // CheckBox & Privacy Terms/隐私条款勾选框及隐私条款
612
+
613
+ /**
614
+ 授权页面上条款勾选框初始状态。默认 NO。
615
+ */
616
+ @Field var defaultCheckBoxState: Bool?;
617
+
618
+ /**
619
+ 授权页面上勾选框勾选的图标。默认为蓝色图标。推荐尺寸为12x12。
620
+ */
621
+ @Field var checkedImage: RNUImage?;
622
+
623
+ /**
624
+ 授权页面上勾选框未勾选的图标。默认为白色图标。推荐尺寸为12x12。
625
+ */
626
+ @Field var uncheckedImage: RNUImage?;
627
+
628
+ /**
629
+ 授权页面上条款勾选框大小及位置,请不要设置勾选框的横向偏移,整体隐私条款的横向偏移,请通过 termsRect 设置
630
+ */
631
+ @Field var checkBoxRect: RNOLAuthViewModelOLRect?;
632
+
633
+ /**
634
+ 隐私条款文字属性。默认基础文字灰色, 条款蓝色高亮, 12pt。
635
+ */
636
+ @Field var privacyTermsAttributes: RNNSAttributedStringKey?;
637
+
638
+ /**
639
+ 额外的条款。默认为空。
640
+ */
641
+ @Field var additionalPrivacyTerms: Array<RNOLPrivacyTermItem>?;
642
+
643
+ /**
644
+ 服务条款普通文字的颜色。默认灰色。
645
+ */
646
+ @Field var termTextColor: UIColor?;
647
+
648
+ /**
649
+ 隐私条款 位置及大小,隐私条款,宽需大于50,高需大于20,才会生效。
650
+ */
651
+ @Field var termsRect: RNOLAuthViewModelOLRect?;
652
+
653
+ /**
654
+ 除隐私条款外的其他文案,数组大小必须 >= 4,元素依次为:条款前的文案、条款一和条款二连接符、条款二和条款三连接符、条款三和条款四连接符、……,条款后的文案。
655
+ 默认为@[@"登录即同意", @"和", @"、", @"并使用本机号码登录"]
656
+ */
657
+ @Field var auxiliaryPrivacyWords: Array<String>?;
658
+
659
+ /**
660
+ * 点击授权页面隐私协议前勾选框的回调
661
+ */
662
+ // @property (nullable, nonatomic, copy) OLClickCheckboxBlock clickCheckboxBlock;
663
+
664
+ /**
665
+ * 服务条款文案对齐方式,默认为NSTextAlignmentLeft
666
+ */
667
+ @Field var termsAlignment: String;
668
+
669
+ /**
670
+ * 点击授权页面运营商隐私协议的回调
671
+ */
672
+ // @property (nullable, nonatomic, copy) OLViewPrivacyTermItemBlock carrierTermItemBlock;
673
+
674
+ /**
675
+ * 是否在运营商协议名称上加书名号《》
676
+ */
677
+ @Field var hasQuotationMarkOnCarrierProtocol: Bool?;
678
+
679
+ /**
680
+ * 未勾选勾选框时,是否禁止一键登录按钮的点击
681
+ */
682
+ @Field var disableAuthButtonWhenUnchecked: Bool?;
683
+
684
+ /**
685
+ * 未勾选授权页面隐私协议前勾选框时,点击授权页面登录按钮时提示 block
686
+ */
687
+ // @property (nonatomic, copy) OLNotCheckProtocolHintBlock hintBlock;
688
+
689
+ /**
690
+ * 未勾选授权页面隐私协议前勾选框时,点击授权页面登录按钮时勾选框与协议的抖动样式,默认不抖动
691
+ */
692
+ @Field var shakeStyle: String;
693
+
694
+ /**
695
+ * 勾选框与服务条款文案之间的间距。默认为 2
696
+ */
697
+ @Field var spaceBetweenCheckboxAndTermsText: CGFloat = 2
698
+
699
+ // 授权页文案多语言配置
700
+ /**
701
+ * 多语言配置,支持中文简体,中文繁体,英文
702
+ */
703
+ @Field var languageType: String;
704
+
705
+ // Custom Area/自定义区域
706
+
707
+ /**
708
+ 自定义区域视图的处理block
709
+
710
+ @discussion
711
+ 提供的视图容器使用NSLayoutConstraint与相关的视图进行布局约束。
712
+ 如果导航栏没有隐藏, 顶部与导航栏底部对齐, 左边与屏幕左边对齐, 右边与屏幕右边对齐, 底部与屏幕底部对齐。
713
+ 如果导航栏隐藏, 顶部与状态栏底部对齐, 左边与屏幕左边对齐, 右边与屏幕右边对齐, 底部与屏幕底部对齐。
714
+ */
715
+ // @property (nullable, nonatomic, copy) OLCustomUIHandler customUIHandler;
716
+
717
+ /**
718
+ * 授权页面旋转时的回调,可在该回调中修改自定义视图的frame,以适应新的布局
719
+ */
720
+ // @property (nullable, nonatomic, copy) OLAuthVCTransitionBlock authVCTransitionBlock;
721
+
722
+ // Background Image/授权页面背景图片
723
+
724
+ /**
725
+ 授权页背景颜色。默认白色。
726
+ */
727
+ @Field var backgroundColor: UIColor?;
728
+
729
+ /**
730
+ 授权页面背景图片
731
+ */
732
+ @Field var backgroundImage: RNUImage?;
733
+
734
+ /**
735
+ 横屏模式授权页面背景图片
736
+ */
737
+ @Field var landscapeBackgroundImage: String;
738
+
739
+ // Background Gif/授权页面背景 gif
740
+ /**
741
+ 授权页面背景Gif路径,与背景图片、视频,三者只有一个有效,视频优先级最高,背景图其次,gif 最后
742
+ */
743
+ @Field var backgroundGifPath: String;
744
+ // Background Video/授权页面背景视频
745
+ /**
746
+ 授权页面背景视频路径,可支持本地和网络视频,与背景图片、gif,三者只有一个有效,视频优先级最高,背景图其次,gif 最后
747
+ */
748
+ @Field var backgroundVideoPath: String;
749
+
750
+ // Autolayout
751
+
752
+ /**
753
+ * 授权页面视图控件自动布局回调
754
+ */
755
+ // @property (nullable, nonatomic, copy) OLAuthVCAutoLayoutBlock autolayoutBlock;
756
+
757
+ // orientation
758
+
759
+ /**
760
+ * 授权页面支持的横竖屏方向
761
+ */
762
+ @Field var supportedInterfaceOrientations: String;
763
+
764
+
765
+ // Popup
766
+
767
+ /**
768
+ * 是否为弹窗模式
769
+ */
770
+ @Field var isPopup: Bool
771
+
772
+ /**
773
+ 弹窗 位置及大小。弹窗模式时,x轴偏移只支持portraitLeftXOffset和landscapeLeftXOffset。
774
+ */
775
+ @Field var popupRect: RNOLAuthViewModelOLRect;
776
+
777
+ /**
778
+ 弹窗圆角,默认为6。
779
+ */
780
+ @Field var popupCornerRadius: CGFloat = 6;
781
+
782
+ /**
783
+ 当只需要设置弹窗的部分圆角时,通过popupCornerRadius设置圆角大小,通过popupRectCorners设置需要设置圆角的位置。
784
+ popupRectCorners数组元素不超过四个,超过四个时,只取前四个。比如,要设置左上和右上为圆角,则传值:@[@(UIRectCornerTopLeft), @(UIRectCornerTopRight)]
785
+ */
786
+ @Field var popupRectCorners: Array<NSNumber>?;
787
+
788
+ /**
789
+ * 弹窗动画类型,当popupAnimationStyle为OLAuthPopupAnimationStyleStyleCustom时,动画为用户自定义,用户需要传一个CATransition对象来设置动画
790
+ */
791
+ @Field var popupAnimationStyle: String;
792
+
793
+ /**
794
+ * 弹窗自定义动画
795
+ */
796
+ @Field var popupTransitionAnimation: String;
797
+
798
+ /**
799
+ 弹窗关闭按钮图片,弹窗关闭按钮的尺寸跟图片尺寸保持一致。
800
+ 弹窗关闭按钮位于弹窗右上角,目前只支持设置其距顶部偏移和距右边偏移。
801
+ */
802
+ @Field var closePopupImage: String;
803
+
804
+ /**
805
+ 弹窗关闭按钮距弹窗顶部偏移。
806
+ */
807
+ @Field var closePopupTopOffset: NSNumber = 0;
808
+
809
+ /**
810
+ 弹窗关闭按钮距弹窗右边偏移。
811
+ */
812
+ @Field var closePopupRightOffset: NSNumber = 0
813
+
814
+ /**
815
+ 是否需要通过点击弹窗的背景区域以关闭授权页面。
816
+ */
817
+ @Field var canClosePopupFromTapGesture: Bool = false;
818
+
819
+ /**
820
+ * 点击授权页面弹窗背景的回调
821
+ */
822
+ // @property (nonatomic, copy, nullable) OLTapAuthBackgroundBlock tapAuthBackgroundBlock;
823
+
824
+ /**
825
+ * 弹窗蒙板视图
826
+ */
827
+ // @Field var popupMaskView: UIView;
828
+
829
+ // Auth Dialog/授权弹窗
830
+
831
+ /**
832
+ * 未勾选同意协议时是否弹出授权弹窗
833
+ */
834
+ @Field var willAuthDialogDisplay: Bool;
835
+
836
+ /**
837
+ * 点击授权弹窗外是否关闭授权弹窗
838
+ */
839
+ @Field var canCloseAuthDialogFromTapGesture: Bool;
840
+
841
+ /**
842
+ * 授权弹窗宽、高、起始点位置
843
+ */
844
+ @Field var authDialogRect: RNOLAuthViewModelOLRect;
845
+
846
+ /**
847
+ * 授权弹窗是否显示在屏幕下方
848
+ */
849
+ @Field var isAuthDialogBottom: Bool;
850
+
851
+ /**
852
+ * 授权弹窗背景颜色
853
+ */
854
+ @Field var authDialogBgColor: UIColor?;
855
+
856
+ /**
857
+ * 授权弹窗标题文字
858
+ */
859
+ @Field var authDialogTitleText: String;
860
+
861
+ /**
862
+ * 授权弹窗标题颜色
863
+ */
864
+ @Field var authDialogTitleColor: UIColor?;
865
+
866
+ /**
867
+ * 授权弹窗字体样式及大小
868
+ */
869
+ @Field var authDialogTitleFont: RNOLAuthViewModelUIFont?;
870
+
871
+ /**
872
+ * 授权弹窗富文本字体样式及大小
873
+ */
874
+ @Field var authDialogContentFont: RNOLAuthViewModelUIFont?;
875
+
876
+ /**
877
+ * 授权弹窗不同意按钮文字
878
+ */
879
+ @Field var authDialogDisagreeBtnText: String;
880
+
881
+ /**
882
+ * 授权弹窗不同意按钮样式及大小
883
+ */
884
+ @Field var authDialogDisagreeBtnFont: RNOLAuthViewModelUIFont?;
885
+
886
+ /**
887
+ * 授权弹窗不同意按钮文字颜色
888
+ */
889
+ @Field var authDialogDisagreeBtnColor: UIColor?;
890
+
891
+ /**
892
+ * 授权弹窗不同意按钮的背景图片, @[正常状态的背景图片, 高亮状态的背景图片]。默认正常状态为灰色, 高亮状态为深灰色。
893
+ */
894
+ @Field var authDialogDisagreeBtnImages: Array<String>;
895
+
896
+ /**
897
+ * 授权弹窗同意按钮文字
898
+ */
899
+ @Field var authDialogAgreeBtnText: String;
900
+
901
+ /**
902
+ * 授权弹窗同意按钮样式及大小
903
+ */
904
+ @Field var authDialogAgreeBtnFont: RNOLAuthViewModelUIFont?;
905
+
906
+ /**
907
+ * 授权弹窗同意按钮文字颜色
908
+ */
909
+ @Field var authDialogAgreeBtnColor: UIColor?;
910
+
911
+ /**
912
+ * 授权弹窗同意按钮的背景图片, @[正常状态的背景图片, 高亮状态的背景图片]。默认正常状态为蓝色纯色, 高亮状态为灰蓝色。
913
+ */
914
+ @Field var authDialogAgreeBtnImages: Array<String>?;
915
+
916
+ /**
917
+ * 授权弹窗圆角,默认为10。
918
+ */
919
+ @Field var authDialogCornerRadius: CGFloat = 10;
920
+
921
+ /**
922
+ * 当只需要设置授权弹窗的部分圆角时,通过 authDialogCornerRadius 设置圆角大小,通过 authDialogRectCorners 设置需要设置圆角的位置。
923
+ * authDialogRectCorners 数组元素不超过四个,超过四个时,只取前四个。比如,要设置左上和右上为圆角,则传值:@[@(UIRectCornerTopLeft), @(UIRectCornerTopRight)]
924
+ */
925
+ @Field var authDialogRectCorners: Array<NSNumber>?;
926
+
927
+ /**
928
+ * 授权弹窗动画类型,当authDialogAnimationStyle为OLAuthDialogAnimationStyleCustom时,动画为用户自定义,用户需要传一个CATransition对象来设置动画
929
+ */
930
+ @Field var authDialogAnimationStyle: String;
931
+
932
+ /**
933
+ * 授权弹窗自定义动画
934
+ */
935
+ @Field var authDialogTransitionAnimation: String;
936
+
937
+ /**
938
+ * 点击授权弹窗背景关闭授权弹窗时的回调
939
+ */
940
+ // @Field (nullable, nonatomic, copy) OLTapAuthDialogBackgroundBlock tapAuthDialogBackgroundBlock;
941
+
942
+ /**
943
+ * 点击授权弹窗不同意按钮时的回调
944
+ */
945
+ // @property (nullable, nonatomic, copy) OLClickAuthDialogDisagreeBtnBlock clickAuthDialogDisagreeBtnBlock;
946
+
947
+ // Loading
948
+
949
+ /**
950
+ * 授权页面,自定义加载进度条,点击登录按钮之后的回调
951
+ */
952
+ // @property (nonatomic, copy, nullable) OLLoadingViewBlock loadingViewBlock;
953
+
954
+ /**
955
+ * 授权页面,停止自定义加载进度条,调用[OneLogin stopLoading]之后的回调
956
+ */
957
+ // @property (nonatomic, copy, nullable) OLStopLoadingViewBlock stopLoadingViewBlock;
958
+
959
+ // WebViewController Navigation/服务条款页面导航栏
960
+
961
+ /**
962
+ 服务条款页面导航栏隐藏。默认不隐藏。
963
+ */
964
+ @Field var webNaviHidden: Bool?;
965
+
966
+ /**
967
+ 服务条款页面导航栏的标题,默认与协议名称保持一致,粗体、17pt。
968
+ 设置后,自定义协议的文案、颜色、字体都与设置的值保持一致,
969
+ 运营商协议的颜色、字体与设置的值保持一致,文案不变,与运营商协议名称保持一致。
970
+ */
971
+ @Field var webNaviTitle: RNOLAuthViewModelNSAttributedString?;
972
+
973
+ /**
974
+ 服务条款页面导航的背景颜色。默认白色。
975
+ */
976
+ @Field var webNaviBgColor: UIColor?;
977
+
978
+ // Hint
979
+
980
+ /**
981
+ 未勾选服务条款复选框时,点击登录按钮的提示。默认为"请同意服务条款"。
982
+ */
983
+ @Field var notCheckProtocolHint: String?;
984
+
985
+ // OLAuthViewLifeCycleBlock
986
+
987
+ /**
988
+ 授权页面视图生命周期回调。
989
+ */
990
+ // @property (nullable, nonatomic, copy) OLAuthViewLifeCycleBlock viewLifeCycleBlock;
991
+
992
+ // UIModalPresentationStyle
993
+
994
+ /**
995
+ present授权页面时的样式,默认为UIModalPresentationFullScreen
996
+ */
997
+ @Field var modalPresentationStyle: String;
998
+
999
+ /**
1000
+ * present授权页面时的自定义动画
1001
+ */
1002
+ @Field var modalPresentationAnimation: String;
1003
+
1004
+ /**
1005
+ * dismiss授权页面时的自定义动画
1006
+ */
1007
+ @Field var modalDismissAnimation: String;
1008
+
1009
+ // OLPullAuthVCStyle
1010
+
1011
+ /**
1012
+ * @abstract 进入授权页面的方式,默认为 modal 方式,即 present 到授权页面,从授权页面进入服务条款页面的方式与此保持一致
1013
+ */
1014
+ @Field var pullAuthVCStyle: String;
1015
+
1016
+ // UIUserInterfaceStyle
1017
+
1018
+ /**
1019
+ * @abstract 授权页面 UIUserInterfaceStyle,iOS 12 及以上系统,默认为 UIUserInterfaceStyleLight
1020
+ *
1021
+ * UIUserInterfaceStyle
1022
+ * UIUserInterfaceStyleUnspecified - 不指定样式,跟随系统设置进行展示
1023
+ * UIUserInterfaceStyleLight - 明亮
1024
+ * UIUserInterfaceStyleDark - 暗黑 仅对 iOS 13+ 系统有效
1025
+ */
1026
+ @Field var userInterfaceStyle: String;
1027
+
1028
+ @Field var backgroundImageView: RNUIImageView?;
1029
+ @Field var floatGoBackImageViewButton: RNUIButton?;
1030
+ @Field var customViews: Array<RNUIButton>?;
1031
+ }