自分自身のURL Schemeを叩いた場合の挙動

投稿者: sota 投稿日:

Pocket

URL Schemeの仕様を確認していて、ふと「アプリケーション内から自分自身のURL Schemeを叩くとどうなるのか」という実験をしてみました。
画面上にボタンを設置し、ボタンが押されたタイミングで自分のアプリのURL SchemeからはじまるURLを開くように設定。

- (IBAction)openURL:(id)sender {
  [[UIApplication sharedApplication] openURL:[NSURL URLWithString:@"urltest://foo"]];
}

アプリケーション側のplistにURL Scheme urltestを登録。

最後に、アプリケーションデリゲートにURL Scheme経由で呼ばれたときのコールバックを実装。

- (BOOL)application:(UIApplication *)application openURL:(NSURL *)url sourceApplication:(NSString *)sourceApplication annotation:(id)annotation {
   NSLog(@"handled: %@", url);
   return YES;
}

実際に動かしてみる。

というわけで自分自身のURL SchemeからはじまるURLをOpenしようとすると、特にアプリが切り替わったりすることなくapplication:openURL:sourceApplication:annotation:が呼ばれるようです。なにに使えるかというと、URL Schemeが正しく機能するかどうかのテストの自動化に使えるわけですが、まあ使う場面は少なそうだな…。

カテゴリー: iPadiPhoneMac

コメントを残す

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です