版本要求

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

登入 Apple開發者網站,在 Certificates, Identifiers & Profiles 頁面,查看對應的 App ID Prefix