版本要求
在使用 DeepLink 功能时,首先需要完成以下配置:
- 在应用中正确集成 Android 、iOS SDK
- 在活动页面正确集成 Web JS SDK
Android 端
在神策分析页面查看对应的配置
配置 AndroidManifest.xml
将获取的配置信息放入 AndroidManifest.xml 中需唤起的 Activity 中
配置 Activity
重写 onNewIntent(Intent intent) 方法,调用 setIntent(intent):
@Override
protected void onNewIntent(Intent intent) {
super.onNewIntent(intent);
setIntent(intent);
}
获取应用内参数
DeepLink 唤起应用成功后会回调 setDeepLinkCallback 方法:
SensorsDataAPI.sharedInstance().setDeepLinkCallback(new SensorsDataDeepLinkCallback() {
/**
* @description 处理本次 DeepLink 跳转
* @param params 创建渠道链接时填写的参数
* @param success 请求渠道信息是否成功
* @param appAwakePassedTime 本次请求时长
*/
@Override
public void onReceive(String params, boolean success, long appAwakePassedTime) {
}
});
iOS 端
在神策分析页面查看对应的配置
配置 Universal Link
iOS 工程选择 TARGETS -> Signing & Capabilities -> Associated Domains ,打开 Associated Domains 开关并在 Domains 中填入上一步中获取到的 Associated Domain 配置信息:
配置 URL Scheme
iOS 工程选择 TARGETS -> Info -> URL Types,点击加号(+),设置唤起 App 的 URL Schemes。内容为上面步骤中获取到的 URL Scheme 配置信息:
添加 URL Scheme 和 Universal Link 支持
在 SDK 中配置 URL Scheme 和 Universal Link 后,就可以通过 URL Scheme 和 Universal Link 唤起 App。在 AppDelegate 中实现下列方法监听 DeepLink 唤起。
- (BOOL)application:(UIApplication *)app openURL:(NSURL *)url options:(NSDictionary *)options {
// 业务相关逻辑处理
if ([[SensorsAnalyticsSDK sharedInstance] handleSchemeUrl:url]) {
return YES;
}
return YES;
}
- (BOOL)application:(UIApplication*)application continueUserActivity:(NSUserActivity*)userActivity restorationHandler:(void (^)(NSArray*))restorationHandler {
// 业务相关逻辑处理
if ([[SensorsAnalyticsSDK sharedInstance] handleSchemeUrl:userActivity.webpageURL]) {
return YES;
}
return YES;
}
- (BOOL)application:(UIApplication*)application openURL:(NSURL*)url sourceApplication:(NSString*)sourceApplication annotation:(id)annotation {
// 业务相关逻辑处理
if ([[SensorsAnalyticsSDK sharedInstance] handleSchemeUrl:url]) {
return YES;
}
return YES;
}
获取应用内参数
调用 - setDeeplinkCallback: 方法获取在创建渠道链接时填写的 App 内参数信息。使用说明如下:
- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions {
SAConfigOptions *options = [[SAConfigOptions alloc] initWithServerURL:Sa_Default_ServerURL launchOptions:launchOptions];
options.autoTrackEventType = SensorsAnalyticsEventTypeAppStart | SensorsAnalyticsEventTypeAppEnd | SensorsAnalyticsEventTypeAppClick | SensorsAnalyticsEventTypeAppViewScreen;
[SensorsAnalyticsSDK startWithConfigOptions:options];
/// 处理本次 DeepLink 跳转
/// @param params 创建渠道链接时填写的参数
/// @param success 请求渠道信息是否成功
/// @param appAwakePassedTime 本次请求时长
[[SensorsAnalyticsSDK sharedInstance] setDeeplinkCallback:^(NSString * _Nonnull params, BOOL success, NSTimeInterval appAwakePassedTime) {
}];
return YES;
}
Web 端
增加 DeepLink 按钮
在活动页面增加立即打开或类似的操作按钮:
按钮的事件处理
在按钮的操作处调用 openDeepLink() 方法,超时则判断为唤起失败,浏览器会跳转至配置的下载地址:
// 初始化深度链接插件
var deeplink = sensors.use('Deeplink',{timeout: 2900});
document.getElementById('theBtn').addEventListener('click', function(e) {
e.preventDefault();
deeplink.openDeepLink();
});
其他
查看 Android 应用签名
在本地使用 keytool -list -v -keystore 【签名路径】
查看 iOS 应用的 App ID Prefix
登录苹果开发者网站,在 Certificates, Identifiers & Profiles 页面,查看对应的 App ID Prefix