flutter京东SDK插件
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
 
 
 
 
 

112 lines
3.4 KiB

  1. //
  2. // KeplerApiManager.h
  3. // KeplerApp
  4. // 提供Kepler服务
  5. // Created by JD.K on 16/6/20.
  6. // Copyright © 2016年 JD.K. All rights reserved.
  7. // version 3.0.1
  8. #import <Foundation/Foundation.h>
  9. #import <UIKit/UIKit.h>
  10. /** 初始化成功回调 */
  11. typedef void (^initSuccessCallback)();
  12. /** 初始化失败回调 */
  13. typedef void (^initFailedCallback)(NSError * _Nonnull error);
  14. /**
  15. 打开成功回调
  16. */
  17. typedef void(^OpenSuccessBlock)();
  18. /**
  19. * 响应失败的错误回调,返回一个错误的链接或信息
  20. */
  21. typedef void(^OpenFailedBlock)(NSInteger code, NSString * _Nonnull url);
  22. typedef enum {
  23. KeplerErrorCodeUnInstalled = 422, //未安装京东app
  24. KeplerErrorCodeWhited, //本地url不在白名单中
  25. KeplerErrorCodeResponsed, //本地呼起open协议失败
  26. KeplerErrorCodeNoSid, //sid为空
  27. KeplerErrorCodeInValidApp //应用不合法
  28. } KeplerErrorCode;
  29. @interface KeplerApiManager : NSObject
  30. /**
  31. 分佣的 AppKey2
  32. */
  33. @property (nonatomic, copy) NSString *secondAppKey;
  34. //********************************* 通过京东APP打开链接相关参数 ************************************
  35. /**
  36. 当isOpenByH5为 NO 时,准备跳转到JD APP时会调用这些代码。可以把开启 Loading动画的代码放到这里
  37. 为避免造成混乱,在关闭Kepler界面时,会置为nil。因此需要在每次打开Kepler之前单独设置。
  38. */
  39. @property (nonatomic, copy) void(^startOpenJDAppBlock)();
  40. /**
  41. 当isOpenByH5为 NO 时,跳转JD APP准备工作完成时会调用这些代码,success为YES表示成功,可以打开JD APP,为NO时表示打开失败。
  42. 为避免造成混乱,在关闭Kepler界面时,会置为nil。因此需要在每次打开Kepler之前单独设置。
  43. update: success为NO且错误码等于-1005时,安全id为空
  44. */
  45. @property (nonatomic, copy) void(^finishOpenJDAppBlock)(BOOL success,NSError *error);
  46. /**
  47. * 京东达人内容ID 关闭kepler界面时会清除 如果需要此值 再次打开需要再次设置
  48. **/
  49. @property (nonatomic, copy) NSString *actId;
  50. /**
  51. * 京东达人 内容渠道扩展字段 关闭kepler界面时会清除 如果需要此值 再次打开需要再次设置
  52. **/
  53. @property (nonatomic, copy) NSString *ext;
  54. /**
  55. * 是否走服务端的渠道,默认走本地渠道
  56. */
  57. @property (nonatomic, assign) BOOL isServerChannel;
  58. /**
  59. 打开京东超时时间设置 关闭 Kepler 界面时不会重置 默认为60
  60. */
  61. @property (nonatomic, assign) NSTimeInterval openJDTimeout;
  62. //*******************************************************************************************************
  63. /**
  64. * KeplerApiManager 单例
  65. *
  66. * @return KeplerApiManager 单例
  67. */
  68. + (KeplerApiManager *)sharedKPService;
  69. /**
  70. * 注册Kepler 服务
  71. *
  72. * @param appKey 注册的appKey
  73. * @param appSecret 注册的secretKey
  74. */
  75. - (void)asyncInitSdk:(NSString *)appKey
  76. secretKey:(NSString *)appSecret
  77. sucessCallback:(initSuccessCallback)sucessCallback
  78. failedCallback:(initFailedCallback)failedCallback;
  79. /**
  80. 跳转京东app
  81. @param url 调用方传入的URl参数
  82. @param userInfo 调用sdk时传入的kepler自定义参数
  83. @param failedCallback code 表示错误编码, url 引起调用失败的url
  84. */
  85. - (void)openKeplerPageWithURL:(NSString *)url
  86. userInfo:(NSDictionary *)userInfo
  87. successCallback:(OpenSuccessBlock _Nullable)success
  88. failedCallback:(OpenFailedBlock _Nonnull)failure;
  89. @end