猎豆优选

ALSmartLink.h 2.3KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879
  1. //
  2. // ALSmartLink.h
  3. // AlibcLinkPartnerSDK
  4. //
  5. // Created by 诺夏 on 2019/3/11.
  6. // Copyright © 2019 czp. All rights reserved.
  7. //
  8. #import <Foundation/Foundation.h>
  9. #import <UIKit/UIKit.h>
  10. #import "ALSLURI.h"
  11. /**
  12. * 返回结果。
  13. * 如果唤端成功,会返回唤起成功App的名称,可能会返回降级页面。注意,由于智能唤端策略,唤起成功的App可能不是指定的目标App。
  14. * 如果唤端失败,会返回目标App的名称以及降级页面。
  15. * @param errorCode 见ALPError中的 LinkPartnerErrorType 定义
  16. */
  17. typedef void(^ALSLCompletionBlock)(BOOL success, NSString * _Nonnull target, NSString * _Nullable degradeURL, int errorCode);
  18. #pragma mark - Public method
  19. /**
  20. * 在目标App中打开指定页面。
  21. * @param URL 页面地址
  22. * @param target 目标App的名称。默认"手机淘宝"
  23. * @param completionBlock 唤端结束回调
  24. */
  25. void ALSLOpenURL(NSString * _Nonnull URL, NSString * _Nonnull target, ALSLCompletionBlock _Nonnull completionBlock);
  26. #pragma mark - ALSmartLink
  27. NS_ASSUME_NONNULL_BEGIN
  28. @interface ALSmartLink : NSObject
  29. + (instancetype)sharedInstance;
  30. /**
  31. * 初始化方法,请在唤端之前务必先调用此方法,建议放在启动完成阶段。
  32. */
  33. - (void)initWithAppkey:(NSString *)appkey;
  34. /**
  35. * 根据URI跳转到目标App。(请务必在主线程调用)
  36. * @param uri 参考ALSLURI.h说明
  37. * @param completionHandler 唤端结束回调
  38. */
  39. - (void)openURI:(ALSLURI *)uri completionHandler:(ALSLCompletionBlock)completionHandler;
  40. /**
  41. * 是否可以打开指定APP. 注意,此方法仅针对info.plist的LSApplicationQueriesSchemes中有配置的scheme生效。其它均返回false
  42. * @param target 目标APP对应的key值。比如淘宝的target为taobao
  43. */
  44. - (BOOL)canOpenApp:(nonnull NSString *)target;
  45. - (void)supportOpenTaobaoWhenTmallNotInstalled:(BOOL)enable;
  46. /**
  47. * 是否应用DeferredLink。即在目标App无法打开,降级到下载页(Appstore),在下载好指定App并打开时,自动跳转到指定页面
  48. * @param useDeferredLink 默认false
  49. */
  50. - (void)useDeferredLink:(BOOL)useDeferredLink;
  51. /**
  52. * 禁用智能唤端。默认false
  53. */
  54. - (void)disableSmartOpen:(BOOL)disable;
  55. /**
  56. * 是否打开Debug模式。debug模式下会有log输出,log日志以“ALSL:”开头
  57. */
  58. - (void)setDebugOn:(BOOL)on;
  59. @end
  60. NS_ASSUME_NONNULL_END