版本要求

  • 神策分析 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

Android 端

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

配置 AndroidManifest.xml

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

配置 Activity

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

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

获取应用内参数

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

iOS 端

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

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<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

获取应用内参数

调用  - 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

Web 端

增加 DeepLink 按钮

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

按钮的事件处理

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

// 初始化深度链接插件
sensors.quick('useAppPlugin', {
        deeplink: function(deeplink) {
          deeplink.init({timeout: 2900}); // 等待唤起 App 的时间,默认 3000 ms
          document.getElementById('theBtn').addEventListener('click', function(e) {
            e.preventDefault();
            deeplink.openDeepLink();
          });
        }
});
JS

其他

查看 Android 应用签名

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

查看 iOS 应用的 App ID Prefix

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