強火で進め このページをアンテナに追加 RSSフィード

整理された情報は こちら へどうぞ。

2011年11月05日

[]URL schemeを使ってアプリを起動する(Xcode 4.2の場合)

以前、「URL schemeを使ってアプリを起動する」という記事を書きました。

URL schemeを使ってアプリを起動する - 強火で進め

http://d.hatena.ne.jp/nakamura001/20090305/1236267660

しかし、現在のXcodeだと指定する位置などが変わっているので現在のものに更新したものを書いておきます。

設定

まずは「プロジェクトファイル」→「TARGETS」と選択。

f:id:nakamura001:20111105223306p:image

次にタブの「Info」を選択。

f:id:nakamura001:20111105223410p:image

画面下部の「Add」アイコンをクリックし、「Add URL Type」を選択。

f:id:nakamura001:20111105223556p:image

するとこの様な項目が追加されます(追加された項目を展開した状態)。

f:id:nakamura001:20111105223642p:image

ここの「Identifier」と「URL Scheme」を設定します。

「Identifier」は「Bundle Identifier」と同様に他のアプリなどと被らない一意な文字列を指定して下さい。今回は「com.example.test」としました。

「URL Scheme」とはブラウザで使用されるURLの中の先頭部分に当たる URL: や mailto: 、ftp: などの事を言います。今回はここに独自定義を追加する形になるのでその様な既存のものとは異なる文字列を設定する必要が有ります。今回は「test」としました。

最終的な記述内容はこうなります。

f:id:nakamura001:20111105225340p:image

実際に試してみる

上記の設定が終ったら以下の内容を AppDelegate.m に追加し、ビルドします。

- (BOOL)application:(UIApplication *)application handleOpenURL:(NSURL *)url {
    NSString* msg = [NSString stringWithFormat:@"[URL]%@\n[schame]%@\n[Query]%@", 
                     [url absoluteString], [url scheme], [url query]];
    UIAlertView *alert = [[UIAlertView alloc] initWithTitle:@"debug"
                                                    message:msg
                                                   delegate:self
                                          cancelButtonTitle:@"OK"
                                          otherButtonTitles:nil, nil];
    [alert show]; 
    
    return YES;
}

アプリのインストールが完了したらブラウザを起動し、アドレス欄に以下の文字列を入力します。

test://hoge/fuga?abc=123

※因みに以前はメールやSMSに投稿した時にリンク化させて簡単に起動させる方法が有りましたがセキュリティの観点からか現在のiOSではその様な方法は使えなくなっています。

するとアプリが起動し、この様なアラートが表示されます。それぞれの項目に意図したデータが入っているのが確認できます。

f:id:nakamura001:20111105224912p:image

投稿したコメントは管理者が承認するまで公開されません。

スパム対策のためのダミーです。もし見えても何も入力しないでください
ゲスト

コメントを書くには、なぞなぞ認証に回答する必要があります。

リンク元