|
- //
- // KeplerApiManager.h
- // KeplerApp
- // 提供Kepler服务
- // Created by JD.K on 16/6/20.
- // Copyright © 2016年 JD.K. All rights reserved.
- // version 3.0.3
-
- #import <Foundation/Foundation.h>
- #import <UIKit/UIKit.h>
-
- NS_ASSUME_NONNULL_BEGIN
-
- /** 初始化成功回调 */
- typedef void (^initSuccessCallback)();
- /** 初始化失败回调 */
- typedef void (^initFailedCallback)(NSError * _Nonnull error);
- /**
- 打开成功回调
- */
- typedef void(^OpenSuccessBlock)();
-
- /**
- * 响应失败的错误回调,返回一个错误的链接或信息
- */
- typedef void(^OpenFailedBlock)(NSInteger code, NSString * _Nonnull url);
-
- typedef enum {
- KeplerErrorCodeUnInstalled = 422, //未安装京东app
- KeplerErrorCodeWhited, //本地url不在白名单中
- KeplerErrorCodeResponsed, //本地呼起open协议失败
- KeplerErrorCodeNoSid, //sid为空
- KeplerErrorCodeInValidApp, //应用不合法
- KeplerErrorCodeUnInstalledJXAPP, //未安装京喜app
- KeplerErrorCodeOpenJXFailed //无法打开京喜商品,返回h5链接
-
- } KeplerErrorCode;
-
- typedef enum {
- KeplerJXErrorCodeSucceed = 0, //正常呼起
- KeplerJXErrorCodeReturnUrl = 1, //兜底url
- KeplerJXErrorCodeNoSkuUrl = 2, //非sku链接
- KeplerJXErrorCodeAnalysisFailed = 3, //逆解析失败
- KeplerJXErrorCodeNoParameter = -1, //参数为空
- KeplerJXErrorCodeUnusual = -99, //异常
- } KeplerJXErrorCode;
-
-
- FOUNDATION_EXTERN const NSString *kJDKeplerReturnUrl_appName;
- FOUNDATION_EXTERN const NSString *kJDKeplerReturnUrl_appSchema;
- FOUNDATION_EXTERN const NSString *kJDKeplerReturnUrl_appBundle;
-
- @interface KeplerApiManager : NSObject
-
- /**
- 分佣的 AppKey2
- */
- @property (nonatomic, copy) NSString *secondAppKey;
- //********************************* 通过京东APP打开链接相关参数 ************************************
-
- /**
- 当isOpenByH5为 NO 时,准备跳转到JD APP时会调用这些代码。可以把开启 Loading动画的代码放到这里
- 为避免造成混乱,在关闭Kepler界面时,会置为nil。因此需要在每次打开Kepler之前单独设置。
- */
- @property (nonatomic, copy) void(^startOpenJDAppBlock)();
-
- /**
- 当isOpenByH5为 NO 时,跳转JD APP准备工作完成时会调用这些代码,success为YES表示成功,可以打开JD APP,为NO时表示打开失败。
- 为避免造成混乱,在关闭Kepler界面时,会置为nil。因此需要在每次打开Kepler之前单独设置。
-
- update: success为NO且错误码等于-1005时,安全id为空
- */
- @property (nonatomic, copy) void(^finishOpenJDAppBlock)(BOOL success,NSError *error);
-
- /**
- * 京东达人内容ID 关闭kepler界面时会清除 如果需要此值 再次打开需要再次设置
- **/
- @property (nonatomic, copy) NSString *actId;
-
- /**
- * 京东达人 内容渠道扩展字段 关闭kepler界面时会清除 如果需要此值 再次打开需要再次设置
- **/
- @property (nonatomic, copy) NSString *ext;
-
- /**
- * 是否走服务端的渠道,默认走本地渠道
- */
- @property (nonatomic, assign) BOOL isServerChannel;
-
- /**
- 打开京东超时时间设置 关闭 Kepler 界面时不会重置 默认为60
- */
- @property (nonatomic, assign) NSTimeInterval openJDTimeout;
-
-
- //*******************************************************************************************************
-
- /**
- * KeplerApiManager 单例
- *
- * @return KeplerApiManager 单例
- */
- + (KeplerApiManager *)sharedKPService;
-
- /**
- * 注册Kepler 服务
- *
- * @param appKey 注册的appKey
- * @param appSecret 注册的secretKey
- */
- - (void)asyncInitSdk:(NSString *)appKey
- secretKey:(NSString *)appSecret
- sucessCallback:(initSuccessCallback)sucessCallback
- failedCallback:(initFailedCallback)failedCallback;
-
- /**
- 跳转京东app
-
- @param url 调用方传入的URL参数
- @param userInfo 调用sdk时传入的kepler自定义参数
- @param failedCallback code 表示错误编码, url 引起调用失败的url
- */
- - (void)openKeplerPageWithURL:(NSString *)url
- userInfo:(NSDictionary *)userInfo
- successCallback:(OpenSuccessBlock _Nullable)success
- failedCallback:(OpenFailedBlock _Nonnull)failure;
-
-
- /**
- 根据url跳转京喜App,根据接口返回结果兼容京东App商品跳转
- @param url 商品链接
- @param userInfo 自定义参数
- @param successBlock 呼起App成功的回调
- @param failureBlock 呼起失败回调。打开原生App失败会以code+url方式返回,可用webview打开url
- @discussion 返回键信息通过userInfo参数传入,需通过外部变量kJDKeplerReturnUrl_appName,kJDKeplerReturnUrl_appSchema,kJDKeplerReturnUrl_appBundle设置key值,对应value分别为接入应用的应用名,schema,Bundle Identifier。
- */
- - (void)openJXPageWithUrl:(NSString *)url
- userInfo:(NSDictionary *)userInfo
- success:(OpenSuccessBlock)successBlock
- failure:(OpenFailedBlock)failureBlock;
-
- @end
-
- NS_ASSUME_NONNULL_END
|