[Swift] カスタムURLスキームによるアプリ間連携

posted in: iOS, Swift | 0

はじめまして、ニノです。
SwiftでiOSアプリを作っていて、カスタムURLスキームでアプリ間連携を行う機会があったのでご紹介したいと思います。

カスタムURLスキームとは

iOSアプリでアプリ間連携を行う手段として、カスタムURLスキームを利用する方法があります。
アプリには固有のカスタムURLスキームを設定することができます。
例えば、sample:// のようなカスタムURLスキームを設定すると、このURLでアプリを外部から起動することができます。

カスタムURLスキームの設定方法

info.plistを開いて、以下のように「URL types」->「URL Schemes」の項目にカスタムURLスキームを設定します。
ここでは、sample:// というカスタムURLスキームを想定して設定します。

info.plistの設定

カスタムURLスキームの受信処理

これでアプリを外部から起動する準備ができました。
カスタムURLスキームを受信すると、AppDelegate.swift の以下の処理が呼ばれるためコードを追記しましょう。
なお、iOSのバージョンが9以降と8以前では呼ばれる関数が違うため注意が必要です。
両バージョンに対応する場合は、それぞれの定義が必要になります。

[AppDelegate.swift]

パラメータの受信

次は、カスタムURLスキームでパラメータを受信する方法です。
sampleアプリを呼び出す際に、「param1=AAA」「param2=BBB」という2つのパラメータを渡したい場合、次のようなURLでアプリを呼び出します。

sample://?param1=AAA&param2=BBB

これらのパラメータを受信する処理は以下のようになります。

[AppDelegate.swift]

これで受信したパラメータに応じて、遷移する画面を切り替えたり処理を分岐することもできます。

以上、主に受信側のご紹介になりましたが、カスタムURLスキームを使ってアプリ間連携を行う方法でした。

LINEで送る
Pocket