onAppOpenAttribution未调用与AppsFlyer的深层链接

时间:2017-08-07 11:16:25

标签: ios appsflyer appsflyer-ios-sdk

我已将AppsFlyer SDK集成到我的项目中。我设法让深层链接起作用。我在OneLink中创建的任何链接都将根据需要打开应用程序。但是我无法访问链接参数。我已经实现了以下所有代理方法:

func onAppOpenAttribution(_ attributionData: [AnyHashable : Any]!) {
    print("Test 1")
}

func onAppOpenAttributionFailure(_ error: Error!) {
    print("Test 2")
}

func onConversionDataReceived(_ installData: [AnyHashable : Any]!) {
    print("Test 3")
}

func onConversionDataRequestFailure(_ error: Error!) {
    print("Test 4")
}

当我的应用从深层链接打开时,不会调用其中一个。我在这里错过了什么?在我在控制台中配置的网址中,我mycompany://配置为Mobile deeplink URL。对此的任何指示都会很棒。谢谢!

3 个答案:

答案 0 :(得分:3)

我只需要:

  1. 重启我的Xcode

  2. Redownload provisioning profiles

  3. 3)点击链接后,确保您在Xcode项目背景的真实设备上。

    1. 确保AppsFlyerTracker.shared().delegate = self位于AppDelegate文件的didFinishLaunchingWithOptions方法中。

答案 1 :(得分:2)

如果您还没有,请将以下方法添加到您的代表:

// Reports app open from a Universal Link for iOS 9
- (BOOL) application:(UIApplication *)application continueUserActivity:(NSUserActivity *)userActivity restorationHandler:(void (^)(NSArray *_Nullable))restorationHandler {    
    [[AppsFlyerTracker sharedTracker] continueUserActivity:userActivity restorationHandler:restorationHandler];
    return YES;
}

这会将链接数据传递给AppsFlyer Tracker,因此应调用onAppOpenAttribution

答案 2 :(得分:1)

根据AppsFlyer文档:initializing the SDK,您需要检查以下条件:

  • 发布AppsFlyerTracker.shared.trackAppLaunch()或在函数UIApplication.didBecomeActiveNotification中调用applicationDidBecomeActive(_:)
  • 设置AppsFlyerTracker.shared.isStopTracking = false
  • userActivity传递到AppsFlyerManager.shared.continue(_)中的application(_:continue:restorationHandler:)以获得通用链接(http://或https://)。
  • 将URL和选项传递到AppsFlyerManager.shared.handleOpen(_:options:)中的application(_:open:options:)进行深度链接(自定义方案)。
  • 将跟踪器委托设置为AppsFlyerTracker.shared.delegate

调用AppsFlyerTracker.shared.trackAppLaunch()后,委托的回调函数onAppOpenAttribution(_ attributionData:)也将传递链接信息。