开发者可以通过创建深度链接来将用户转到应用中的特定页面。如果用户已在设备上安装您的应用,SE SDK 会转向链接中指定的页面。用户通过链接打开应用后,SDK 就可以读取深度链接数据了,具体步骤如下:
查看 SolarEngine 后台配置
universal link 示例为:test1.link.solar-engine.com

URL Scheme 示例为:test1://

配置 Universal Link
iOS 工程选择 TARGETS > Signing & Capabilities > Associated Domains ,打开 Associated Domains 开关并在 Domains 中填入在 SolarEngine 后台配置的 Universal Link 域名

配置 URL Scheme
iOS 工程选择 TARGETS > Info > URL Types,点击加号 (+),设置唤起 App 的 URL Schemes。内容为 SolarEngine 后台配置的 URL Scheme 信息

代码支持 Universal Link 和 URL Scheme 解析
在 SDK 中配置 Universal Link URL 和 Scheme后,就可以通过 Universal Link 和 URL Scheme 唤起 App。在 AppDelegate 中实现下列方法监听 DeepLink 唤起。
deeplink url 解析方法
- (void)appDeeplinkOpenURL:(NSURL *)url;
参数说明:
url: iOS 系统回调的 url
- (BOOL)application:(UIApplication *)app openURL:(NSURL *)url options:(NSDictionary<UIApplicationOpenURLOptionsKey,id> *)options {
[[SolarEngineSDK sharedInstance] appDeeplinkOpenURL:url];
return YES;
}
- (BOOL)application:(UIApplication *)application continueUserActivity:(NSUserActivity *)userActivity restorationHandler:(void (^)(NSArray<id<UIUserActivityRestoring>> * _Nullable))restorationHandler {
[[SolarEngineSDK sharedInstance] appDeeplinkOpenURL:userActivity.webpageURL];
return YES;
}
- (BOOL)application:(UIApplication *)application openURL:(NSURL *)url sourceApplication:(NSString *)sourceApplication annotation:(id)annotation {
[[SolarEngineSDK sharedInstance] appDeeplinkOpenURL:url];
return YES;
}
获取回调参数
回调方法
- (void)setDeepLinkCallback:(SEDeeplinkCallback)callback;
回调参数说明:
SEDeeplinkInfo 对象说明
参数名称 | 参数含义 | 参数类型 |
sedpLink | 跳转参数 | NSString |
turlId | 7位短链 | NSString |
from | 链接类型 | NSString |
customParams | 自定义参数 | NSDictionary |
code 错误码:
错误码 | 错误原因 |
0 | 成功 |
1 | URI 非法或为空 |
2 | URI 参数解析错误 |
调用示例
- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions {
[[SolarEngineSDK sharedInstance] setDeepLinkCallback:^(int code, SEDeeplinkInfo * _Nullable deeplinkInfo) {
if (code == 0) {
// 回调成功
NSLog(@"from: %@, sedpLink: %@",deeplinkInfo.from,deeplinkInfo.sedpLink);
} else {
// 回调失败
NSLog(@"code: %d",code);
}
}];
SEConfig *config = [[SEConfig alloc] init];
[[SolarEngineSDK sharedInstance] preInitWithAppKey:@"your_appKey"];
[[SolarEngineSDK sharedInstance] startWithAppKey:@"your_appKey" config:config];
return YES;
}
上报deeplink唤醒事件
开发者可以通过上报 deeplink 唤醒成功事件来进行拉活归因和业务分析。
注:如果使用了SDK的deeplink功能,调用了 appDeeplinkOpenURL 接口,则无需调用 trackAppReEngagement: 方法
方法示例
- (void)trackAppReEngagement:( NSDictionary * _Nullable)customProperties;
调用示例
NSDictionary *customProperties = @{@"test_key":@"xxx"};
[[SolarEngineSDK sharedInstance] trackAppReEngagement:customProperties];