何が変わったか?
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以前ではこの対応がベスト?)