.-- --

スポンサーサイト

上記の広告は1ヶ月以上更新のないブログに表示されています。
新しい記事を書く事で広告が消せます。
スポンサー広告 comment(-) trackback(-)
.20 2012

カスタムURLスキームの扱いについて Vol.2

1月末から2月初頭にかけてインフルエンザにかかっていました
どうも、UTOです。

今回はURLからコールされた時に引数みたいなものを取得するやり方をメモ


AppDelegate.mに

- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions

この関数が最初にコールされるかと思います。
URLスキームでアプリが起動するとこの関数を抜けた後に以下の関数がコールされます。

- (BOOL)application:(UIApplication *)application openURL:(NSURL *)url sourceApplication:(NSString *)sourceApplication annotation:(id)annotation

iOSのバージョンが古いと
この関数じゃなくて違う関数がコールされるようですが
今回は最新のOSで考えます。

いろいろ引数がありますが、
URLの情報はNSURL型のurlから取得できます。

このurl変数には前回のエントリで設定したhttp:にかわる文字列を含めた
フルパスのURLが設定されています。

たとえばtest://www.test.com/index.htmlとHTMLで明記し、
Safariからコールされるとそのままurl変数に上記URLが格納されています。

あとはNSURLクラスからスキームを取得するなり
ファイル名を取得するなりっというような使い方になります。


ここでは一体何をするかというと

一般的に起動したときは
didFinishLaunchingWithOptionsにてアプリのトップ画面を表示させ、
URLからコールされたときは、そのURLに該当する画面を登録するっというような感じですね

youtubeやニコニコ動画のアプリはスキーム移行のURL情報から動画のIDを取得して
そのIDの動画を再生するようになっているように
自分が作るアプリも紐付けたURL情報から表示するページや、読み込むデータを分岐させるといった
対応が可能になりますね。

ちなみにURLに「test://www.test.com/index.html?file=http://www.test.com/zip/data001.zip&date=20120220」というような形になっている場合
NSURL型のqueryを使い、一手間処理を実装するとNSDictionary型で情報を管理できます。

url.queryを実行すると「file=http://www.test.com/zip/data001.zip&date=20120220」のNSStringが取得できます。

これを

// &で区切る
NSArray* queryList = [url.query componentsSeparatedByString: @"&"];
if(!queryList){
// error
[[ShareTaskManager shareManager] showErrorAlertWithMessage: @"カタログからの引数が不正な値です"];
return ;
}
NSMutableDictionary* queryDictionary = [NSMutableDictionary dictionary];
// リスト分ループ
for(NSString* query in queryList){
// xx=yyyyとなっているので、=で区切ってdictionary化
NSArray* dictList = [query componentsSeparatedByString: @"="];
[queryDictionary setObject: [dictList lastObject] forKey: [dictList objectAtIndex: 0]];
}

というようにすると
queryDictionaryにキー名とデータを管理することができますね。


最近iOSアプリなことよりARアプリなことが多いので
そっち側も触れていけたらいいなぁ=なんて思っていたりします。

そういえばXCodeの最新版がLion専用でリリースされましたね
もうXCode4は必須な環境になりました
一年前はあれほど嫌だなと思っていましたが
慣れと推奨と条件というものは怖いものですw

ではでは




関連記事
スポンサーサイト

Comment

Post comment

  • comment
  • secret
  • 管理者にだけ表示を許可する

Trackback

trackbackURL:http://appteam.blog114.fc2.com/tb.php/219-d3b8d185

ブログ内検索

関連リンク

製品情報

最新記事

カテゴリ

プロフィール

neoxneo



NEXT-SYSTEM iOS Developers Blog


  • UTO:
    カナダ版iPhone4Sは、マナーモードでシャッター音がならない…


  • Ehara:
    ...


  • Hayate:
    ...


  • Tasaki:
    Developer登録完了...したのはいいけど


  • Ueda:
    ...



リンク

上記広告は1ヶ月以上更新のないブログに表示されています。新しい記事を書くことで広告を消せます。