版本要求

  • 神策分析 2.1 及以上
  • Android SDK:4.2.1 及以上
  • iOS SDK:2.1.2 及以上
  • Web JS SDK:1.15.14 及以上

在使用 DeepLink 功能时,首先需要完成以下配置:

  • 在应用中正确集成 Android 、iOS SDK
  • 在活动页面正确集成 Web JS SDK

1. Android 端

1.1. 在神策分析页面查看对应的配置

1.2. 配置 AndroidManifest.xml

将获取的配置信息放入 AndroidManifest.xml 中需唤起的 Activity 

1.3. 配置 Activity

重写 onNewIntent(Intent intent) 方法,调用 setIntent(intent):

@Override
protected void onNewIntent(Intent intent) {
    super.onNewIntent(intent);
    setIntent(intent);
}
JAVA

1.4. 获取应用内参数

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) {
    
  }
});
JAVA

2. iOS 端

2.1. 在神策分析页面查看对应的配置

iOS 工程选择 TARGETS > Signing & Capabilities > Associated Domains ,打开 Associated Domains 开关并在 Domains 中填入上一步中获取到的 Associated Domain 配置信息:

2.3. 配置 URL Scheme

iOS 工程选择 TARGETS > Info > URL Types,点击加号 (+),设置唤起 App 的 URL Schemes。内容为上面步骤中获取到的 URL Scheme 配置信息:

2.4. 添加 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<UIApplicationOpenURLOptionsKey,id> *)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;
}
CODE

2.5. 获取应用内参数

调用  - 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;
}
CODE

3. Web 端

3.1. 增加 DeepLink 按钮

在活动页面增加立即打开或类似的操作按钮:

3.2. 按钮的事件处理

在按钮的操作处调用 openDeepLink() 方法,超时则判断为唤起失败,浏览器会跳转至配置的下载地址:

// 初始化深度链接插件
var deeplink = sensors.use('Deeplink',{timeout: 2900});
document.getElementById('theBtn').addEventListener('click', function(e) {
       e.preventDefault();
       deeplink.openDeepLink();
}); 
JS

4. 其他

4.1. 查看 Android 应用签名

在本地使用 keytool -list -v -keystore 【签名路径】

4.2. 查看 iOS 应用的 App ID Prefix

登录 苹果开发者网站,在 Certificates, Identifiers & Profiles 页面,查看对应的 App ID Prefix