酷店

ALPTBLinkPartnerSDK.h 4.3KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154
  1. //
  2. // ALPTBLinkPartnerSDK.h
  3. // ALPLinkPartnerSDK
  4. //
  5. // Created by czp on 16/10/10.
  6. // Copyright © 2016年 czp. All rights reserved.
  7. //
  8. #import <Foundation/Foundation.h>
  9. #import <UIKit/UIKit.h>
  10. #import "ALPTBShopParam.h"
  11. #import "ALPTBDetailParam.h"
  12. #import "ALPTBURIParam.h"
  13. #import "ALPJumpFailedStrategy.h"
  14. #define ALPSDKVersion @"1.1.1.2"
  15. typedef NS_ENUM(NSInteger, ALPOpenType) {
  16. ALPOpenTypeNative, //跳转native打开
  17. ALPOpenTypeH5, //H5打开
  18. ALPOpenTypeBrowser //浏览器打开
  19. };
  20. typedef NS_ENUM(NSInteger, ALPConfigEnv) {
  21. ALPConfigEnvNone = -1,//未定义环境
  22. ALPConfigEnvRelease = 0,//线上环境
  23. ALPConfigEnvDaily, //测试环境
  24. ALPConfigEnvPreRelease, //预发环境
  25. };
  26. typedef void(^ALPJumpBackBlock)(NSURL *_Nullable url, NSError *_Nullable error);
  27. @interface ALPTBLinkPartnerSDK : NSObject
  28. /**
  29. * 初始化SDK,必须初始化SDK不然后续跳转操作将报错
  30. *
  31. * @param appKey 必传参数
  32. */
  33. + (void)initWithAppkey:(nonnull NSString *)appKey;
  34. /**
  35. * 设置debug模式打开,会有log输出
  36. *
  37. * @param on 是否打开
  38. */
  39. + (void)setDebugOn:(BOOL)on;
  40. /**
  41. * 设置开发环境,默认线上环境
  42. *
  43. * @param env 开发环境
  44. */
  45. + (void)setEnv:(ALPConfigEnv)env;
  46. /**
  47. * 设置打开页面的类型
  48. *
  49. * @param type 类型
  50. */
  51. + (void)setOpenType:(ALPOpenType)type;
  52. /**
  53. * 是否支持deepLink,即打开xxx APP某个页面时,APP没有安装
  54. * 跳转AppStore下载APP,打开APP时,自动进入那个页面
  55. * 只在设置跳转失败去AppStore情况才支持,默认是支持DeepLink
  56. *
  57. * @param isSupport 是否支持
  58. */
  59. + (void)setSupportDeepLink:(BOOL)isSupport;
  60. /**
  61. * 设置业务追踪id,仅供二方使用,其他接入无需关心
  62. *
  63. * @param ttid ttid
  64. */
  65. + (void)setTTID:(nonnull NSString *)ttid;
  66. /**
  67. * 跳转到店铺页
  68. *
  69. * @param param 店铺的配置参数
  70. * @param strategy 跳转失败时处理策略,不传,返回错误信息
  71. *
  72. * @return 错误信息
  73. */
  74. + (nullable ALPError *)jumpShop:(nonnull ALPTBShopParam *)param
  75. failedStrategy:(nullable ALPJumpFailedStrategy *)strategy;
  76. /**
  77. * 跳转到商品详情页
  78. *
  79. * @param param 商品详情的配置参数
  80. * @param strategy 跳转失败时处理策略,不传,返回错误信息
  81. *
  82. * @return 错误信息
  83. */
  84. + (nullable ALPError *)jumpDetail:(nonnull ALPTBDetailParam *)param
  85. failedStrategy:(nullable ALPJumpFailedStrategy *)strategy;
  86. /**
  87. * 根据URI跳转到手淘,以webView的形式打开;
  88. * 跳转到接入AlibcFlowCustoms SDK的APP,相当于通用跳转(类似openURL:)
  89. *
  90. * @param param URI的配置参数
  91. * @param strategy 跳转失败时处理策略,不传,返回错误信息
  92. *
  93. * @return 错误信息
  94. */
  95. + (nullable ALPError *)jumpURI:(nonnull ALPTBURIParam *)param
  96. failedStrategy:(nullable ALPJumpFailedStrategy *)strategy;
  97. /**
  98. * 通用跳转,param参数中的routeRule必传,匹配接入AlibcFlowCustoms SDK 中注册的插件执行,回跳时触发回调
  99. *
  100. * @param param URI的配置参数
  101. * @param strategy 跳转失败时处理策略,不传,返回错误信息
  102. * @param callback 触发插件执行,回跳时的回调。
  103. * 跳转去目标APP,切换回来,认为用户取消操作触发回调,返回错误信息
  104. *
  105. * @return 错误信息
  106. */
  107. + (nullable ALPError *)jumpURI:(nonnull ALPTBURIParam *)param
  108. failedStrategy:(nullable ALPJumpFailedStrategy *)strategy
  109. jumpBackCallback:(nullable ALPJumpBackBlock)callback;
  110. /**
  111. * 跳转失败,是否支持默认打开手淘
  112. *
  113. * @param isSupport 是否支持
  114. */
  115. + (void)setSupportJumpFailedOpenTaobao:(BOOL)isSupport;
  116. /**
  117. * 处理linkPartner返回结果,需要在AppDelegate的[application:(UIApplication)app handleOpenURL:(NSURL*)url]中添加
  118. *
  119. * @param url 跳入打开APP的URL
  120. * @param sourceApplication 来源APP sourceApplication
  121. *
  122. * @return 是否处理该url
  123. */
  124. + (BOOL)handleOpenURL:(nonnull NSURL *)url sourceApplication:(nullable NSString *)sourceApplication;
  125. /**
  126. * 检查是否能打开指定app,传入是linkKey,比如:@"taobao",指手淘
  127. *
  128. * @param linkkey linkkey
  129. *
  130. * @return 是否能打开APP
  131. */
  132. + (BOOL)canOpenApp:(nonnull NSString *)linkkey;
  133. @end