はじめに
ChromeCustomTabsについては色々な記事で取り上げられているのですが、FireFoxCustomTabsについては調べたところ日本の記事では見つけれなかったのでちょっと使ってみました。
実装
実装と書きましたがChromeCustomTabsと同じ実装で起動できます。
ChromeCustomTabsでおなじみのshared
のCustomTabsHelper
を使用するとCustomTabsに対応したパッケージ名を取得することができます。ただ取得するパッケージ名に優先順位があり、FireFoxCustomTabsを使用したい場合は、Firefoxインストール後にデフォルトブラウザに設定する必用があります。直接自分でパッケージ名を指定しても大丈夫です。
今回はパッケージ名を指定して起動したいと思います。
まず実装方法は、ライブラリを追加して
implementation 'com.android.support:customtabs:+'
あとはFirefoxのパッケージ名を指定するだけです。
val url = "https://www.yahoo.co.jp/"
CustomTabsIntent.Builder().build().apply {
intent.`package` = "org.mozilla.firefox"
}.launchUrl(this, Uri.parse(url))
これで、FirefoxCustomTabsが立ち上がります。
Chromeの場合は、"com.android.chrome"
で立ち上がります。
今回はパッケージ名を指定して起動させましたが、shared
をインポートしてCustomTabsHelper
でパッケージ名を取得するとデフォルトブラウザを優先したりいい感じにパッケージ名を返してくれます。
CustomTabsHelperはgithubで中身をみるとわかりやすいです。(CustomTabsHelper)
比較
見た目の違い
Chrome | Firefox |
---|---|
FirefoxだとPowered by Firefoxになります。
表示速度など比較するためにgifにしようとしたのですが、なかなかタイミング合わせるのが難しくて諦めました。体感的にはどちらが早いとかはわからなかったです。
コード
Githubにあげました。
https://github.com/rmorimot/FirefoxCustomTabsSample
おわり
今回はFirefoxCustomTabs
について書きましたが、他にもSamsung Internet Browserなども対応しているようですが、日本だとあんまり聞かない気がします。Galaxy端末などは初期でインストールされデフォルトブラウザになっていたりするかもしれないので、こちらのCustomTabsが起動するかもしれません。
特にFirefoxを優先的にする必用などは用途が思いつきませんが、デフォルトブラウザに設定しているブラウザは普段からよく使っているブラウザだと思うので、セッションをそのまま使えるCustomTabsを使うときはChrome!!と決めつけないようにした方がいいかもしれません。