4
1

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.

AndroidのFirefox Custom Tabsを使ってみる

Last updated at Posted at 2018-06-19

はじめに

ChromeCustomTabsについては色々な記事で取り上げられているのですが、FireFoxCustomTabsについては調べたところ日本の記事では見つけれなかったのでちょっと使ってみました。

実装

実装と書きましたがChromeCustomTabsと同じ実装で起動できます。
ChromeCustomTabsでおなじみのsharedCustomTabsHelperを使用するとCustomTabsに対応したパッケージ名を取得することができます。ただ取得するパッケージ名に優先順位があり、FireFoxCustomTabsを使用したい場合は、Firefoxインストール後にデフォルトブラウザに設定する必用があります。直接自分でパッケージ名を指定しても大丈夫です。
今回はパッケージ名を指定して起動したいと思います。

まず実装方法は、ライブラリを追加して

build.gradle
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!!と決めつけないようにした方がいいかもしれません。

4
1
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
4
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?