[iOS13]SceneDelegateを使用したURL Schemeによるアプリ起動処理

はじめに

iOS/SwiftにてURL Schemeを使用したアプリ起動時の処理について。
iOS13からはSceneDelegateが追加され書き方を調べたので備忘録としてメモ。

記述方法

はじめにざっくりサンプルを載せます。

上記はURL Schemeにてidとpasswordを渡してログインをさせるようなものを適当に想定しました。

まず、URL Schemeの処理は

func scene(_ scene: UIScene, openURLContexts URLContexts: Set)

こちらのメソッド内に書きます。(URL Scheme名はプロジェクトに設定済みのこと)

上記のコードでは、guard let文にてURL Scheme起動時にURL ComponentsとHostを取得しています。
そして、下記の部分ではHostがloginである(URLの形式が<URL Scheme名>://loginであれば処理する)場合に処理します。

そしてその後にURLのパラメータを取得しています。
Ex) <URL Scheme名>://login?id=xxx&password=yyy であるところのxxxとyyy

これだけ取得できれば後はそれに応じた処理をするだけになります。
hostの分岐をすればhost毎に処理を変えられますし、パラメータも好きにできます。

以上です。

おすすめの記事