Chrome Custom Tabsとは?
- Google I/O 2015で発表されたChrome機能
- 2015/09/02のChrome 45バージョンアップから、Custom Tabsを用いてWebページの表示が可能になった。
対象環境
- Android 4.0以降
- (Google I/O 2015で発表があった)Android M以降である必要はない。
- Android 5.0まで/Android 5.1以降でプロセス管理方法が異なるようなので注意。
- Chrome 45以降にアップデートすると使える
ブラウジング方式比較
- 3が追加になった。
- WebViewを組み込む。
- 標準ブラウザ or Chromeを起動する。
- Chrome Custom Tabsにより連携する。
- 簡単にいえば、1,2のいいとこ取りをしようとしている。
- 1はアプリ内コンポーネントなので、シームレスなページ遷移が実現できる。だがWebView特有の脆弱性が懸念。
- 2のChromeのユーザビリティ/セキュリティを引き継ぐことが可能。ただアプリが分離されるため、元のアプリへ遷移を戻したい場合の使い勝手はよくない。
活用シーン
- 2,3は要調査。
- Webアプリのネイティブアプリ化
- Webフィルタリング
- ポイント・課金システム構築
コード調査
ライブラリ・サンプルコード
連携方法
- AIDL連携によりChromeのActivityを呼び出す。
- CustomTabsConnectionServiceがbind対象となる。
- タブはCustomTabActivityが起動対象となる。
- 以下のパッケージ名が連携対象となる。
- com.android.chrome(Google Play版)
- com.google.android.apps.chrome(プリイン版)
- com.chrome.beta(Beta版)
- com.chrome.dev(Developer版)
セキュリティ検討事項
- 呼び出し元のチェック(偽のChromeでないか)はきちんとチェックしたほうがよさそう。
- KeepAliveServiceがBinderの検証を行わず素通ししているので、不正にKeepAliveの延長などが行われる可能性があるかもしれない。