web-dev-qa-db-ja.com

Android、webviewユーザーエージェントとブラウザーユーザーエージェント

私は自分のウェブサイトを構築していますが、ユーザーがAndroidのブラウザを使用しているか、Webビューのあるアプリを使用しているかを知りたいです。

出来ますか ??

19
a fair player

FROM: http://googlewebmastercentral.blogspot.com/2011/03/mo-better-to-also-detect-mobile-user.html

このようなUser-Agentの場合:

Mozilla/5.0(Linux; U; Android 3.0; en-us; Xoom Build/HRI39)AppleWebKit/534.13(KHTML、Geckoなど)バージョン/4.0 Safari/534.13

「モバイル」文字列がないため、このユーザーにデスクトップバージョン(またはAndroid大画面タッチデバイス用にカスタマイズされたバージョン)を提供します。ユーザーエージェントは、大画面デバイス、XOOMタブレット。

一方、このユーザーエージェント:

Mozilla/5.0(Linux; U; Android 2.2.1; en-us; Nexus One Build/FRG83)AppleWebKit/533.1(KHTML、Geckoなど)バージョン/4.0 Mobile Safari/533.1

「モバイル」と「Android」が含まれているため、このNexus Oneでウェブサーファーにモバイルエクスペリエンスを提供します。

FROM https://stackoverflow.com/a/7327201

user-Agentは、デフォルトのモバイルブラウザとWebビューで同じように見えます

13
Matthew

Chrome dev docs :「WebViewとChrome for Androidを区別しようとしている場合は、Version /XXWebViewユーザーエージェント文字列の文字列。

13
Miguel Andres

参考:これはユーザーエージェントでは実行できませんが、検出することはできます。 AndroidのWebビューは、追加ヘッダー「X-Requested-With」を送信します。このヘッダーの値は、webviewを実行しているアプリケーションの名前空間になります。

たとえば、Dolphinブラウザは「mobi.mgeek.TunnyBrowser」を送信します。テストアプリは「com.jamestymann.identifyawebview」を送信しました。

標準ブラウザは実際にはこのヘッダーをまったく送信しないため、これらを検出するのは非常に簡単です。

ただし、2つの注意事項があります。

  • 「X-Requested-With」は標準ヘッダーであり、デスクトップの完全なWebページ/ブラウザーから送信される可能性があります。 (たとえば、これはこれらの値 "X-Requested-With XMLHttpRequest"を持つajax呼び出しを検出するために使用されます)
  • ほとんどのGoogle Playストアブラウザは、ウェブビューを使用してウェブページを表示します。これらは本格的なブラウザですが、このヘッダーは引き続き送信されます。したがって、この機能を無効にすることが目的の場合は、人々のデフォルトのブラウザを無効にしている可能性があるため、注意が必要です。
9
jtymann

最新情報については、こちらをご覧ください https://developer.chrome.com/multidevice/user-agent ロリポップ以降のデバイスにはwv) UserAgentで。

1
Paul Gregoire

はい。これらのメタタグを追加することで、Webサイトを最適化できます

<meta name="viewport" content="width=device-width; initial-scale=1.0; maximum-scale=1.0; user-scalable=0;" />
<meta name="HandheldFriendly" content="True" />

詳細はこちらをご覧ください http://learnthemobileweb.com/2009/07/mobile-meta-tags/

0
vin_mobilecem