前提・実現したいこと
①以下のURLスキームでをsafariからアプリを起動
②パラメーターを取得
③「パラメーター取得ボタン」で取得したパラーメーターを表示する
・stv://hostname:8080/test?name=taro
まずはこんな感じにprinntされるようにしたい。
1url : cm-app://hostname:8080/test?name=taro 2scheme : cm-app 3host : hostname 4port : 8080 5query : name=taro
発生している問題・エラーメッセージ
safariからアプリを起動できるが、
printで何も表示されない。(取得されていないのか…?)
該当のソースコード
swift
1import UIKit 2 3@UIApplicationMain 4class AppDelegate: UIResponder, UIApplicationDelegate { 5 6 func open(_ url: URL, 7 options: [UIApplication.OpenExternalURLOptionsKey : Any] = [:], 8 completionHandler completion: ((Bool) -> Void)? = nil){ 9 let url = URL(string: "stv")! 10 11 if UIApplication.shared.canOpenURL(url) { 12 if #available(iOS 10.0, *) { 13 UIApplication.shared.open(url, options: [:], completionHandler: { 14 (success) in 15 print("Open (success)") 16 }) 17 }else{ 18 UIApplication.shared.openURL(url) 19 } 20 } 21 } 22 23 func application(_ app: UIApplication, open url: URL, options: [UIApplication.OpenURLOptionsKey : Any] = [:]) -> Bool { 24 print("url : (url.absoluteString)") 25 print("scheme : (url.scheme!)") 26 print("host : (url.host!)") 27 print("port : (url.port!)") 28 print("query : (url.query!)") 29 return true 30 } 31 32---以下略--- 33
試したこと
以下のサイト参考に実装してみたのですが、問題解消ならず…
[iOS] ディープリンク(Custom URL Scheme)でアプリを起動する
Web ページから iOS アプリを起動したい - Custom URL scheme
補足情報(FW/ツールのバージョンなど)
・version
MacOS:Catalina 10.15.5
Xcode:11.6
SceneDelegateは使われていますか?URLを開いた時に SceneDelegate#scene(_ scene: UIScene, openURLContexts URLContexts: Set<UIOpenURLContext>) の方でイベントが発生していないでしょうか?
参考記事: https://qiita.com/ninoko1995/items/05de90350a4bbc12d971#%E4%BB%8A%E5%BE%8C
早速の回答ありがとうございます。
SceneDelegate.swiftに以下を追加したら、コンソールにURLはprint文に表示されました!
```SceneDelegate
func scene(_ scene: UIScene, openURLContexts URLContexts: Set<UIOpenURLContext>){
print(URLContexts)
}
```
しかしこれだと、
以下の他のパラメーターを取得するのが出来ない状態であります。
公式ドキュメントも確認してみたもののそれらしいものを見つけられず…
> host : hostname
> port : 8080
> query : name=taro
【追加】
なんかそれっぽい記事みつけたので、
いったんこちらを参照にやってみようと思います!
[[iOS13]SceneDelegateでURL Schemeのリクエストを受取る(追記あり)](https://qiita.com/MASATO_SSS/items/734da388c9e8f135911e)
おかげさまでこちらの問題は解決いたしました。
いつもありがとうございます。
また、こちらから派生した問題も起きたので、
もしお時間ありましたらご確認いただけると幸いです。
https://teratail.com/questions/290693?modal=q-comp
回答1件
あなたの回答
tips
プレビュー