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