環境
- Xcode : 4.6.2
- iOS SDK : 6.1
- デバッグ 実機 : iPod touch、バージョン6.1.3
URLスキームを設定する
独自URLスキームを使用するにはXcode側でいくつか作業する必要があります。Xcodeでの設定
まず「TARGETS」->「info」->「URL Types」を選択します。「URL Types」で以下のようにURLスキームを設定します。
"Identifier"、"URL Schemes"について「iOSアプリケーションプログラミングガイド」から解説を抜粋します。
Identifier
URLスキームの抽象名を含む文字列。一意性を確保するため、com.acme.myschemeのように、逆DNS形式の識別子を指定することをお勧めします。ここで指定した文字列は、アプリケーションのInfoPlist.stringsファイル内のキーとしても使われます。このキーの値は、人が読める形式のスキーム名です。
アプリを呼び出すための識別IDを指定するものです。
抜粋した解説に「一意性を確保するため、com.acme.myschemeのように、逆DNS形式の識別子を指定することをお勧めします。」とあるように、ユニークな文字列を指定することが決まりのようです。Bundle identifierを指定することが一般的のようです。
URL Schemes
URLスキームの名前(http、mailto、tel、smsなど)を含む文字列の配列。
登録したいスキーム名を指定するものです。
抜粋した解説に"文字列の配列"とあるように、複数指定が可能で、その際はカンマ(,)で区切って指定します。
以上で設定は終わりです。
設定したURLスキームを呼び出す方法
上で設定したスキームを呼び出すには以下のコードで行うことができます。NSURL *myURL = [NSURL URLWithString: @"test-app.scheme://"];
[[UIApplication sharedApplication] openURL:myURL];
URLスキームを呼び出すにはSafariなどを起動するように、openURL:メソッドで行います。引数は、URL Schemesで指定した値に「://」を付けたものになります。おまけ:アプリがインストールされているかを確認
URLスキームを使い、以下のようにしてアプリがインストールされているかの判定できます。NSString *url = @"test-app.scheme://";
BOOL canOpen = [[UIApplication sharedApplication] canOpenURL:[NSURL URLWithString:url]];
if(canOpen == YES)
{
NSLog("開けるよー");
}
else
{
NSLog("開けないよー");
}
canOpenURL:メソッドを使ってその返り値で判定しています。参考記事
カスタムURLスキームを利用する (3) - calmscape: //ソフトウェア開発部URL schemeを使ってアプリを起動する - 強火で進め
iOSアプリにとりあえずでもカスタムURLスキームをつけるべし - Technology-Gym
0 件のコメント:
コメントを投稿