continueUserActivity не вызывается

У меня есть приложение, поддерживающее универсальные ссылки. Все выглядит правильно настроенным. У меня есть apple-app-site-association файл на сервере, соответствующая ссылка добавлена ​​в Associated Domains, а также я добавил application:continueUserActivity:restorationHandler в AppDelegate. Наконец, я добавил ссылку на свое приложение Notes, и когда я нажимаю ссылку и удерживаю ее, я вижу кнопку «Открыть» в «MyApp». Когда я нажимаю кнопку, iOS открывает приложение, но application:continueUserActivity:restorationHandler никогда не вызывается. Что делает это еще более загадочным, так это то, что вызывается application:willContinueUserActivityWithType: (конечно, здесь я возвращаю ДА)

ОБНОВЛЕНИЕ: если мое приложение не работает в фоновом режиме, и я нажимаю ссылку, я открываю свое приложение и получаю объект NSUserActivity в параметре launchOptions параметра application:didFinishLaunchingWithOptions:. Но все равно application:willContinueUserActivityWithType: не называется.


person Ivan    schedule 06.02.2018    source источник


Ответы (1)


Я знаю, что это старый вопрос, но я сам столкнулся с этой проблемой. Вы перешли на более новую версию Swift? В моем случае функция перестала работать после миграции. Функция была переименована из

func application(_ application: UIApplication, continue userActivity: NSUserActivity, restorationHandler: @escaping ([Any]?) -> Void) -> Bool

to

func application(_ application: UIApplication, continue userActivity: NSUserActivity, restorationHandler: @escaping ([UIUserActivityRestoring]?) -> Void) -> Bool.

Надеюсь это поможет!

person Franlon    schedule 01.11.2018
comment
Отличный ответ! Я использовал инструмент преобразования Swift от xCode, но почему-то он упустил эту функцию. Поскольку Swift не имеет аннотации @Override, такой как Java / Android, я не получал ошибок от компилятора ... даже не подумал вручную проверять сигнатуры методов. - person wildcat12; 16.01.2019
comment
Отлично. Спасибо @Franlon. Решил и мою проблему. Я скопировал весь код из проекта, включая старую функцию ... но в одном я был в версии 4.1, а в новой версии 4.2. - person Mohamed Lee; 07.02.2019
comment
3 дня я потратил зря, пытаясь это исправить. Фу. Спасибо!! - person Aystub; 14.01.2020
comment
Спасибо! Потерял на это около 8 часов. Исправлены все предупреждения, и ни в одном из них ничего не говорилось об устаревшей сигнатуре метода. По крайней мере, я узнал больше об UIScenes, но серьезно, как Apple ... не лучший Xcode, который вы когда-либо создавали! - person Darkwonder; 15.01.2020
comment
Спасибо! Потеряли на это около 4 часов !!! - person Alex; 20.02.2021