Открытие содержимого из схемы URL, когда приложение закрыто - PullRequest
0 голосов
/ 29 апреля 2020

Моя проблема

Я реализую схемы URL в своем приложении, и они в целом работают нормально, когда приложение находится на переднем плане или в фоне. Тем не менее, я заметил, что когда он полностью закрыт и другое приложение пытается получить доступ к контенту, используя мой URL (например, app:page?image=1), который обычно работает, он просто открывает приложение, но контент никогда не перехватывается.

Мой подход

Я настроил код в моих методах AppDelegate и SceneDelegate

func application(_ app: UIApplication, open url: URL, options: [UIApplication.OpenURLOptionsKey : Any] = [:])

И

func scene(_ scene: UIScene, openURLContexts URLContexts: Set<UIOpenURLContext>) {

Желаемое поведение

Он открывается, когда приложение находится в фоновом режиме, на переднем плане или закрыто

Фактическое поведение

Оно открывается только в том случае, если на переднем плане или фоне

1 Ответ

1 голос
/ 30 апреля 2020

Поскольку ваше приложение в настоящее время не запущено , оно будет запущено с этими параметрами запуска. т.е. эти опции будут переданы willFinishLaunchingWithOptions: / didFinishLaunchingWithOptions:. Добавьте свой код к одному из этих методов.

Для получения дополнительной информации прочтите документацию о том, как Ответьте на запуск вашего приложения , или, более конкретно, Определите, почему ваше приложение было Запущен .

РЕДАКТИРОВАТЬ:

Как прокомментировал @ paulw11 ниже, делегат сцены работает по-другому и должен обрабатываться отдельно.

Однако в Отвечать на события жизненного цикла на основе сцены последний пункт:

В дополнение к событиям, связанным со сценой, вы должны также ответьте на запуск вашего приложения, используя ваш объект UIApplicationDelegate. Для получения информации о том, что делать при запуске приложения, см. Ответ на запуск вашего приложения

Так что я предполагаю, что нам все еще нужно обработать запуск в willdidFinishLaunchingWithOptions / didFinishLaunchingWithOptions.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...