カスタム url スキーム。 iOSアプリの大規模なCustom URL Schemeを支える技術

[iOS] ディープリンク(Custom URL Scheme)でアプリを起動する

カスタム url スキーム

iOSにおけるカスタムURLスキームについて調べた事をまとめましたので数回にわたって解説したいと思います。 それほど詳しくない分野なので間違っていたらご指摘くださいませ。 まず、URLスキーム URL Scheme についてざっくり説明しておきます。 一般にURLは スキーム名 : スキームごとに定められた何かの表現形式 という形をしている。 スキーム名としてはプロトコル名が用いられていることが多いがそれに限らない。 ftp や mail など、探せばいろいろ思いつくアレですね。 そしてこのスキーム名は 「 URLスキーム」 とも呼ばれます。 iOSではURLスキームを利用してアプリケーション間の連携が可能です。 主な使い道は以下の2つです。 アプリケーションの起動 アプリ定義のURLスキームが分かっていれば、openURL:メソッド等を利用してそのアプリを起動できます。 パラメータを渡す 後述 ことも可能。 メール, sms, マップなどはアップルがURLスキームを公開しています。 パラメータを利用したアプリケーション間の連携 URLと同様に、起動するアプリにパラメータを渡すことができます。 SafariがYoutubeアプリやマップアプリと連携しているように、他アプリを起動する際にパラメータ情報を付加することができます。 起動された側はURL情報を取得してパラメータの内容を取り出すことができます。 自作アプリではプロパティリストにユーザー独自のURLスキームを定義することで上記URLスキームの機能を組み込む事ができます。 このユーザー定義のURLスキームが「 カスタムURLスキーム」です。 次回はカスタムURLスキームを使用したアプリ起動について解説します。

次の

URIスキーム(URLスキーム)とは

カスタム url スキーム

あるアプリが別のアプリを呼び出す方法に URL スキームというものがあります。 xxx. html? xxx. ホスト名以降をどのような書式にするかは自分のアプリの方で決めて、それを他のアプリのプログラマーに使ってもらう形になります。 カスタム URL スキームを登録する 自分のアプリ用の URL スキームを登録するには、自分のアプリでそれを設定する必要があります。 設定は、ターゲットの Info 設定にある "URL Types" で行います。 ここに、このアプリが扱う URL スキームを必要な数だけ追加します。 設定項目は、次のようになっています。 Identifier この URL スキームに付ける識別子です。 自分が所有するドメインを使った文字列を逆順に並べて指定することが推奨されています。 複数の文字列を一括登録したい場合は、カンマ区切りで指定します。 Icon この URL スキームにアイコンを指定したいときに使用します。 設定しなくて大丈夫です。 Role この URL スキームの扱いを指定します。 参照 Viewer 、エディタ Editor 、指定なし None から選べます。 受け取った URL をスキームを使ってこのアプリがどんな振る舞いをするかを、目安程度に設定しておけば大丈夫です。 このうちの Icon と Role については、このスキームのアイコンや用途が何かを、外部アプリが調べられるように Info. plist に書いておくだけのようで、これらの設定によって何か制御が変わることはない様子です。 逆に言うと、気になるアプリの Info. plist を覗くことで、その アプリが持っている URL スキーム名などの概要を見ることができます。 カスタム URL スキームを受け取ったときの処理を実装する アプリにカスタム URL スキームを設定したら、それを外部アプリが呼び出したときに、受け取って処理をするコードを実装します。 外部アプリがこのアプリのカスタム URL スキームを呼び出すと、UIApplicationDelegate の次のデリゲートメソッドがメインスレッドで呼び出されます。 -application:didFinishLaunchingWithOptions: (アプリが起動していなかった場合だけ)• -application:openURL:sourceApplication:annotation: カスタム URL スキームの処理を実装するには、特にこの -application:openURL:sourceApplication:annotation: に必要なコードを実装します。 戻り値は BOOL 型を採りますが、渡された URL スキームを正しく処理できた場合に YES を、URL スキームを開けなかった場合に NO を返すようにします。 なお、sourceApplication には呼び出し元のアプリの Bundle Identifier も渡されてきます。 annotation には、呼び出し元から何らかの が情報として渡されることがあるそうです。 これについては で紹介しています。 カスタム URL スキームが他のアプリとかぶった場合 独自に定義したカスタム URL スキームが既に他のアプリで定義されていた場合も考えられます。 そのようなとき、アップルが定義したものとかぶった場合は、アップルのアプリが優先して開かれるそうです。 それ以外のアプリで衝突した場合には、どのアプリが開かれるかは決まっていないようです。 [ ].

次の

URIスキーム(URLスキーム)とは

カスタム url スキーム

あるアプリが別のアプリを呼び出す方法に URL スキームというものがあります。 xxx. html? xxx. ホスト名以降をどのような書式にするかは自分のアプリの方で決めて、それを他のアプリのプログラマーに使ってもらう形になります。 カスタム URL スキームを登録する 自分のアプリ用の URL スキームを登録するには、自分のアプリでそれを設定する必要があります。 設定は、ターゲットの Info 設定にある "URL Types" で行います。 ここに、このアプリが扱う URL スキームを必要な数だけ追加します。 設定項目は、次のようになっています。 Identifier この URL スキームに付ける識別子です。 自分が所有するドメインを使った文字列を逆順に並べて指定することが推奨されています。 複数の文字列を一括登録したい場合は、カンマ区切りで指定します。 Icon この URL スキームにアイコンを指定したいときに使用します。 設定しなくて大丈夫です。 Role この URL スキームの扱いを指定します。 参照 Viewer 、エディタ Editor 、指定なし None から選べます。 受け取った URL をスキームを使ってこのアプリがどんな振る舞いをするかを、目安程度に設定しておけば大丈夫です。 このうちの Icon と Role については、このスキームのアイコンや用途が何かを、外部アプリが調べられるように Info. plist に書いておくだけのようで、これらの設定によって何か制御が変わることはない様子です。 逆に言うと、気になるアプリの Info. plist を覗くことで、その アプリが持っている URL スキーム名などの概要を見ることができます。 カスタム URL スキームを受け取ったときの処理を実装する アプリにカスタム URL スキームを設定したら、それを外部アプリが呼び出したときに、受け取って処理をするコードを実装します。 外部アプリがこのアプリのカスタム URL スキームを呼び出すと、UIApplicationDelegate の次のデリゲートメソッドがメインスレッドで呼び出されます。 -application:didFinishLaunchingWithOptions: (アプリが起動していなかった場合だけ)• -application:openURL:sourceApplication:annotation: カスタム URL スキームの処理を実装するには、特にこの -application:openURL:sourceApplication:annotation: に必要なコードを実装します。 戻り値は BOOL 型を採りますが、渡された URL スキームを正しく処理できた場合に YES を、URL スキームを開けなかった場合に NO を返すようにします。 なお、sourceApplication には呼び出し元のアプリの Bundle Identifier も渡されてきます。 annotation には、呼び出し元から何らかの が情報として渡されることがあるそうです。 これについては で紹介しています。 カスタム URL スキームが他のアプリとかぶった場合 独自に定義したカスタム URL スキームが既に他のアプリで定義されていた場合も考えられます。 そのようなとき、アップルが定義したものとかぶった場合は、アップルのアプリが優先して開かれるそうです。 それ以外のアプリで衝突した場合には、どのアプリが開かれるかは決まっていないようです。 [ ].

次の