info.plistファイルで、構成URL Identifier
してURL Scheme
正常に実行しました。また、カスタムURLを使用してアプリを開くこともできます。問題は、アプリがメソッドを初めて起動したときです
func scene(_ scene: UIScene, openURLContexts URLContexts: Set<UIOpenURLContext>) does not call.
上記の方法に基づくいくつかの依存機能があります。そのため、アプリを初めて起動したときに、アプリに何も表示されません。
また、メソッドにコードを追加しました
func scene(_ scene: UIScene, willConnectTo session: UISceneSession, options connectionOptions: UIScene.ConnectionOptions) {
guard let _ = (scene as? UIWindowScene) else { return }
let url = connectionOptions.urlContexts.first?.url
}
ここではnilとしてURLを取得します。
ただし、アプリがバックグラウンドモードでURLを押すと、上記のメソッドが正常に呼び出され、依存する機能が正常に動作します。以下は、私のscene(_:openURLContexts:)
メソッドのコードsceneDelegate
です。
func scene(_ scene: UIScene, openURLContexts URLContexts: Set<UIOpenURLContext>){
let url = URLContexts.first?.url
let urlString: String = url!.absoluteString
if let urlComponents = URLComponents(string: urlString),let queryItems = urlComponents.queryItems {
queryParams = queryItems
} else {
print("invalid url")
}
guard let windowScene = (scene as? UIWindowScene) else { return }
self.window = UIWindow(windowScene: windowScene)
//self.window = UIWindow(frame: UIScreen.main.bounds)
let storyboard = UIStoryboard(name: "Main", bundle: nil)
guard let rootVC = storyboard.instantiateViewController(identifier: "LocationViewIdentifier") as? UIViewController else {
print("ViewController not found")
return
}
let rootNC = UINavigationController(rootViewController: rootVC)
self.window?.rootViewController = rootNC
self.window?.makeKeyAndVisible()
}
上記のメソッドが初めて呼び出されない理由を誰かに教えてもらえますか?
この質問の現在の状況は何ですか?答えの1つで問題は解決しましたか?はいの場合は、そのうちの1つを受け入れてください。さらに助けが必要ですか?「はい」の場合、提供されたソリューションが問題に対して何をしたのか、まだ何が欠けているのかを説明できますか?この問題を解決するためにお手伝いさせていただきます
—
Muli