17
18

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 5 years have passed since last update.

iOS版Chromeでiframe deep linkingが禁止された件

Last updated at Posted at 2015-09-06

何が変わったか?

iOS版のChrome(45.0.2454.68)から, <iframe src="twitter://">のようにiframeタグでカスタムURLスキームを指定することが出来なくなった。
chromiumプロジェクト内の該当Issue

以前は, iframeタグにカスタムURLスキームを指定することで, そのURLスキームに対応しているアプリをインストールしているユーザのみアプリを起動し, その他のユーザはそのままウェブサイトを利用してもらう, という場合分けを行うことができた。

解決方法

ブラウザを介さずにOSレベルで対応する

iOS

iOS9以降はUniversal Linksを利用することで, 特定のURLを開く際にブラウザの代わりにアプリを開くことをOSレベルで登録することができる。
ただし、この方法はiOS8以前では使用できない。

Android

Intent filterを使うことで, 特定のURLを開く際にブラウザに加えて, 自分のアプリを起動選択肢に加える事ができる。

ブラウザ上でユーザの明示的なアクションを要求する

iframeタグからユーザの操作無しにカスタムURLスキームを叩く代わりに, 「アプリを起動する」のような明示的なアプリ起動リンクを埋め込み, ユーザがアプリ起動を選択できるようにする。
(iOS8以前ではこの対応がベスト?)

参考

17
18
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
17
18

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?