Scene Delegate не обновляет View Controller - PullRequest
0 голосов
/ 02 мая 2020

Как мне получить этот код в Scene Delegate

  // App Delegate
 func application(_ app: UIApplication, open url: URL, options: [UIApplication.OpenURLOptionsKey : Any] = [:]) -> Bool {
        return SCSDKLoginClient.application(app, open: url, options: options)
    }

Потому что мне нужно получить некоторые данные из обратного вызова. В настоящее время обратный вызов не вызовет делегат приложения. Представьте, что обратный вызов - это поток OAuth.

Я нашел решение, но оно не сработало

// Scene Delegate
func scene(_ scene: UIScene, openURLContexts URLContexts: Set<UIOpenURLContext>) {
        guard let url = URLContexts.first?.url else {
            return
        }

        SCSDKLoginClient.application(UIApplication.shared, open: url, options: nil)
     }

, потому что мне нужно передать значение параметров в эту сцену. Как бы я достиг метода AppDelegate в Scene Delegate?

1 Ответ

0 голосов
/ 02 мая 2020

Если проблема заключается в том, как передать параметр options, попробуйте следующий код. В основном UIOpenURLContext имеет две переменные-члены url и options , вы должны отобразить эти ApplicationDelegate options.

func scene(_ scene: UIScene, openURLContexts URLContexts: Set<UIOpenURLContext>) {
        guard let urlContext = URLContexts.first else {
            return
        }

        let url = urlContext.url

        let options: [UIApplication.OpenURLOptionsKey : Any] = [
            UIApplication.OpenURLOptionsKey.annotation : urlContext.options.annotation as Any,
            UIApplication.OpenURLOptionsKey.sourceApplication : urlContext.options.sourceApplication as Any,
          UIApplication.OpenURLOptionsKey.openInPlace : urlContext.options.openInPlace
        ]

        SCSDKLoginClient.application(
            UIApplication.shared,
            open: url,
            options: options)
    }

Disclaimer - я не тестировал Snapchat код, просто попробуйте дать вам идею.

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