Глубинные ссылки на appflayer не работают, когда приложение открывается по ссылке (метод делегата не вызывается)
У меня есть глубокая связь с AppFlayer SDK, и универсальная ссылка, открывающая приложение, успешно означает, что глубокие ссылки работают нормально.
Теперь проблема в том, что когда приложение открывается по ссылке, оно не будет перенаправлено на свою страницу. Но если я поставлю приложение в фоновом режиме и возьму на передний план, то глубокие ссылки работают
Я следую этому руководству.( Ссылка)
Код установки AppFlayer
func application(_ application: UIApplication, willFinishLaunchingWithOptions launchOptions: [UIApplicationLaunchOptionsKey : Any]? = nil) -> Bool {
AppsFlyerTracker.shared().appsFlyerDevKey = "xxxxxxxxxxxx"
AppsFlyerTracker.shared().appleAppID = "xxxxxxx"
AppsFlyerTracker.shared().isDebug = false
AppsFlyerTracker.shared().delegate = self
self.pushNotificationService(application)
objStoryBoard = UIStoryboard(name:"Main", bundle: nil)
return true
}
Делегат AppFlayer
Edit:: Этот метод не вызывается, когда приложение открыто по ссылке из appsflayer marketing
//MARK:
//MARK: appflayer delegate
func onAppOpenAttribution(_ installData: [AnyHashable: Any]) {
NSLog("installData ::%@", installData )
if let link = installData["link"] as? String
{
if link.contains(read_Localizable("titleAppflayer"))
{
if let arrQueryItems = URLComponents(string: link)!.queryItems {
for obj in arrQueryItems {
if obj.name.caseInsensitiveCompare(read_Localizable("appflayerParameter")) == .orderedSame
{
self.redirectAppflayer(withstrUrl: obj.value!)
return
}
}
}
}
}
}
метод активности пользователя
func application(_ application: UIApplication, continue userActivity: NSUserActivity, restorationHandler: @escaping ([Any]?) -> Void) -> Bool {
// if let url = userActivity.webpageURL
// {
// NSLog("URL :: %@",[url])
// }
if userActivity.webpageURL?.absoluteString.contains(read_Localizable("titleAppflayer")) == true
{
AppsFlyerTracker.shared().continue(userActivity, restorationHandler: restorationHandler)
return true
}
return Branch.getInstance().continue(userActivity)
}
Дайте мне знать, что я делаю неправильно.
1 ответ
Вы звоните в AppsFlyerTracker из willFinishLaunchingWithOptions
когда это должно быть вызвано из didFinishLaunchingWithOptions
, Не могли бы вы переместить соответствующий код и протестировать снова?
Добавить
[[AppsFlyerTracker sharedTracker] trackAppLaunch];
Метод onConversionDataSuccess начнет получать вызов.