我已将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
。对此的任何指示都会很棒。谢谢!
答案 0 :(得分:3)
我只需要:
重启我的Xcode
3)点击链接后,确保您在Xcode项目背景的真实设备上。
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://)。AppsFlyerManager.shared.handleOpen(_:options:)
中的application(_:open:options:)
进行深度链接(自定义方案)。AppsFlyerTracker.shared.delegate
。调用AppsFlyerTracker.shared.trackAppLaunch()
后,委托的回调函数onAppOpenAttribution(_ attributionData:)
也将传递链接信息。