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

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が正しく機能するかどうかのテストの自動化に使えるわけですが、まあ使う場面は少なそうだな…。

Pocket

コメントを残す

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