onAppOpenAttribution не вызывается для глубоких ссылок с AppsFlyer
Я интегрировал 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")
}
Ни один из них не вызывается, когда мое приложение открыто по глубокой ссылке. Что мне здесь не хватает? В моем URL, который настроен в панели управления, у меня есть mycompany://
настроен как Mobile deeplink URL
, Любые указатели на это было бы здорово. Спасибо!
2 ответа
Я просто должен был:
Перезапустите мой Xcode
3) Убедитесь, что вы находитесь на реальном устройстве с фоном проекта Xcode, когда нажимаете на ссылку.
- Удостовериться
AppsFlyerTracker.shared().delegate = self
находится вdidFinishLaunchingWithOptions
метод в файле AppDelegate.
Если вы еще этого не сделали, добавьте в ваш делегат следующий метод:
// 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
должен быть вызван в результате.
Согласно документу AppsFlyer: при инициализации 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:)
делегата также передаст информацию о ссылке.