28
29

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.

Android4.4のWebViewがChromiumになったことによる、ただひとつの弊害

Last updated at Posted at 2014-07-17

Android4.4のwebviewがChromiumになったことによる、ただひとつの弊害
もしくは、Android4.4からChromeのUAを正しく判定する方法

「ただひとつの」は盛りすぎたかもしんない(;・∀・)

困ってたこと

アプリが入ってたらアプリを表示して,
入ってなかったらストアに飛ばす実装がしたい

AndroidのChromeでのみ使えるIntentを使う方法↓
https://developer.chrome.com/multidevice/android/intents
を使ったりして、モダンに実装してやったぞ!

えっアプリ内ブラウザで
Google Chrome では intent://hogehuga が見つかりませんでした
って出ちゃうΣ(゚д゚lll)ガーン

結論

UserAgentをみてChromeかどうかを判定するときは、
Chromeという文字列だけで判定するのでは不十分で、
Version/という文字列が入っていないことも確認すること。

どうしてこうなった?

Android4.4(KitKat)から、AndroidのWebviewがChromiumベースになった。
(参考:https://developer.chrome.com/multidevice/webview/overview

それにより、WebViewのUAにChromeと書かれるようになった。
つまり、従来通りのUA判定では、ChromeアプリとWebViewを区別することができなくなった。

そんなことが、
ここ(https://developer.chrome.com/multidevice/user-agent#webview_user_agent)
の一番下にうすーく太字で書いてあった。

Versionって汎用的すぎてちょっと不安だけど、公式がそうアナウンスしてるんだから仕方ないよね!

追記

AUのUserAgent情報 (http://www.au.kddi.com/developer/android/kishu/ua/ )見たら、
Xperia ZL2 SOL25とか、AQUOS SERIE SHL25とか、標準ブラウザにも
Chromeの文字列が入ってるので、誤判定してるかもですね。
実機持ってないので確かなことはわからないですが。。。(/ω・\)チラッ

28
29
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
28
29

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?