SmCaptchaWebView.h 2.8 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108
  1. //
  2. // SmCaptcha.h
  3. // SmCaptcha
  4. //
  5. // Created by weipingshun on 17/6/29.
  6. // Copyright © 2017年 shumei. All rights reserved.
  7. //
  8. #import <Foundation/Foundation.h>
  9. #import <WebKit/WebKit.h>
  10. // 错误码
  11. typedef NS_ENUM(NSUInteger, SmCaptchaCode) {
  12. SmCaptchaSuccess = 0,
  13. SMCaptchaSDKOptionEmpty = 1001, // 调用SDK没有option为空
  14. SMCaptchaSDKOptionNoOrg, // 调用SDK没有传入organization
  15. SMCaptchaSDKOptionNoAppId, // 调用SDK没有传入appId
  16. SMCaptchaSDKNoDelegate,
  17. SMCaptchaWVNetworkError, // webview加载h5页面失败
  18. SMCaptchaWVResultError, // webview接收JS返回的数据格式错误
  19. SmCaptchaJSResourceError = 2001,
  20. SMCaptchaJSServerError,
  21. SMCaptchaJSOptionError,
  22. SmCaptchaJSInitError,
  23. SMCaptchaJSNetworkError
  24. };
  25. typedef NS_ENUM(NSUInteger, SmCaptchaMode) {
  26. SM_MODE_SLIDE = 0,
  27. SM_MODE_SELECT = 1,
  28. SM_MODE_SEQ_SELECT = 3,
  29. SM_MODE_ICON_SELECT = 4,
  30. SM_MODE_SPATIAL_SELECT = 5,
  31. SM_MODE_AUTO_SLIDE = 6
  32. };
  33. // 数美滑动验证码配置类
  34. @interface SmCaptchaOption : NSObject {
  35. }
  36. @property(readwrite, nonatomic) NSString* organization;
  37. @property(readwrite, nonatomic) NSString* appId;
  38. @property(readwrite, nonatomic) NSString* deviceId;
  39. @property(readwrite, nonatomic) NSString* channel;
  40. @property(readwrite, nonatomic) NSString* tipMessage;
  41. @property(readwrite, nonatomic) NSDictionary* data;
  42. @property(readwrite, nonatomic) NSDictionary* extOption;
  43. @property(readwrite, nonatomic) BOOL https;
  44. @property(readwrite, nonatomic) SmCaptchaMode mode;
  45. @property(readwrite, nonatomic) NSString* host; //conf接口的host
  46. @property(readwrite, nonatomic) NSString* cdnHost; //index.html资源的host
  47. @property(readwrite, nonatomic) NSString* captchaHtml; //index.html的url
  48. @property(readwrite, nonatomic) NSString* captchaUuid; //sessionId,支持传入设置
  49. @end
  50. // 数美滑动验证码回调类
  51. @protocol SmCaptchaProtocol <NSObject>
  52. @required
  53. /**
  54. * 加载成功回调函数
  55. */
  56. - (void)onReady;
  57. /**
  58. * 处理成功回调函数
  59. */
  60. - (void)onSuccess:(NSString*) rid pass:(BOOL) pass;
  61. /**
  62. * 中途出现异常回调函数
  63. */
  64. - (void)onError:(NSInteger) code;
  65. /**
  66. * 处理点击验证码上的的X关闭验证码的回调函数
  67. */
  68. - (void)onClose;
  69. @optional
  70. - (void)onInitWithContent:(NSDictionary *) content;
  71. - (void)onReadyWithContent:(NSDictionary *) content;
  72. - (void)onSuccessWithContent:(NSDictionary *) content;
  73. - (void)onCloseWithContent:(NSDictionary *) content;
  74. - (void)onErrorWithContent:(NSDictionary *) content;
  75. @end
  76. // 数美滑动验证码View类
  77. @interface SmCaptchaWKWebView : WKWebView
  78. // 初始化接口,如果初始化失败,返回error非空
  79. -(NSInteger) createWithOption: (SmCaptchaOption*)option delegate:(id<SmCaptchaProtocol>) delegate;
  80. -(void) reloadCaptcha;
  81. -(void) enableCaptcha;
  82. -(void) disableCaptcha;
  83. @end