JavaScript を使用して userAgent を通じていくつかの一般的なブラウザを判別する方法

JavaScript を使用して userAgent を通じていくつかの一般的なブラウザを判別する方法

序文

通常、h5 ページを作成するときは、WeChat、QQ、Weibo などのエコシステム内でトラフィックの迂回作業を行う必要がありますが、トラフィックの迂回はこれらのプラットフォームによって制限されます。例えば、前回の記事「h5 ウェイクアップ アプリの実装と注意点」は妥協案です。では、これらのよく使われるブラウザのユーザー エージェントはどのようなものでしょうか。どう判断する?今日はこの問題を詳しく見てみましょう。

ユーザーエージェントの定義

ユーザー エージェントは、User Agent の中国語名で、UA と略されます。これは、クライアントが使用するオペレーティング システムとバージョン、CPU タイプ、ブラウザーとバージョン、ブラウザーのレンダリング エンジン、ブラウザーの言語、ブラウザーのプラグインなどをサーバーが識別できるようにする特別な文字列ヘッダーです。 ---百度百科より

この文から、UA を通じてユーザーが使用しているオペレーティング システムやバージョン、CPU の種類、ブラウザやバージョンなどの情報を取得できることがわかりますね。

いくつかの一般的なブラウザUA

ここではWeChat、Weibo、QQなどのブラウザのみが取得されています。残りはまだ取得されていません。追加がある場合は、プライベートメッセージを送信するか、コメントを残してください。

アンドロイド

現在使用されているAndroidバージョンはHuawei Honor V9 Playで、現在のAndroidシステムバージョンは7.0、EMUIバージョンは5.1です。

QQブラウザ

  • UA: mozilla/5.0 (linux; u; android 7.0; zh-cn; jmm-al10 build/honorjmm-al10) applewebkit/537.36 (khtml、gecko に類似) version/4.0 chrome/66.0.3359.126 mqqbrowser/9.6 mobile safari/537.36
  • バージョン:9.6.0.5170

QQ

  • UA:mozilla/5.0 (linux; android 7.0; jmm-al10 build/honorjmm-al10; wv) applewebkit/537.36 (khtml, like gecko) version/4.0 chrome/62.0.3202.84 mobile safari/537.36 v1_and_sq_8.1.0_1232_yyb_d qq/8.1.0.4150 nettype/wifi webp/0.4.1 pixel/720 statusbarheight/49 simpleuiswitch/0
  • バージョン:8.1.0.4150

微信

  • UA: mozilla/5.0 (linux; android 7.0; jmm-al10 build/honorjmm-al10; wv) applewebkit/537.36 (khtml、gecko など) version/4.0 chrome/66.0.3359.126 mqqbrowser/6.2 tbs/044807 mobile safari/537.36 mmwebid/4093 micromessenger/7.0.6.1460(0x27000634) process/tools nettype/wifi language/zh_cn
  • バージョン:7.0.6

微博

  • UA:mozilla/5.0 (linux; android 7.0; jmm-al10 build/honorjmm-al10; wv) applewebkit/537.36 (khtml, like gecko) version/4.0 chrome/62.0.3202.84 mobile safari/537.36 weibo (huawei-jmm-al10__weibo__9.8.0__android__android7.0)
  • バージョン:9.8.0

りんご

Appleは現在iPhone 6s Plusを使用しており、現在のiOSバージョンは12.4です。

QQブラウザ

  • UA: mozilla/5.0 (iphone; cpu iphone os 12_4 like mac os x) applewebkit/605.1.15 (khtml, like gecko) version/12.0 mqqbrowser/9.6.0 mobile/15e148 safari/604.1 qbwebviewua/2 qbwebviewtype/1 wktype/1
  • バージョン:9.6.0.4193

QQ

  • UA:mozilla/5.0 (iphone; cpu iphone os 12_4 like mac os x) applewebkit/605.1.15 (khtml, like gecko) mobile/15e148 qq/8.1.0.437 v1_iph_sq_8.1.0_1_app_a pixel/1080 core/wkwebview device/apple(iphone 6splus) nettype/wifi qbwebviewtype/1 wktype/1
  • バージョン:8.1.0.437

微信

  • UA: mozilla/5.0 (iphone; cpu iphone os 12_4 like mac os x) applewebkit/605.1.15 (khtml, like gecko) mobile/15e148 micromessenger/7.0.5(0x17000523) nettype/wifi language/zh_cn
  • バージョン:7.0.5

微博

  • UA: mozilla/5.0 (iphone; cpu iphone os 12_4 like mac os x) applewebkit/605.1.15 (khtml, like gecko) mobile/15e148 weibo (iphone8,2__weibo__9.7.1__iphone__os12.4)
  • バージョン:9.7.1

上記のUA値はすべてtoLowerCaseで処理されるため、すべて小文字になります。

よく使われるブラウザを個別に特定する

判断する前に、UA ですべての文字を小文字に変換する操作 (toLowerCase で実行可能) を実行し、個別に判断する必要があります。

上記の UA を通じて判断するのは実はとても簡単です。前回の記事では、次のように記述する方法がすでにあります。

/micromessenger/i.test(u) // WeChat をチェック u.indexOf("weibo") > -1 // Weibo をチェック u.indexOf("qq") > -1 // QQ をチェック
u.indexOf("mqqbrowser") > -1 // QQブラウザを決定する

QQ では qq の前にスペースが必要であることに注意してください。

追加情報を入手する

上記の UA から、現在のシステムが Android であるか iOS であるかを UA によって判別できることは難しくありません。これは次のコードで区別できます。

/android/i.test(UA) //Android を判定
/(iPhone|iPad|iPod|iOS)/i.test(UA) //iOS を判定

上記のデータには、携帯電話の具体的な種類も示されていますが、ここでは詳しく紹介しません。さらに、Quark や UC など、多くのモバイル ブラウザーは UA を変更できます。詳しく調べれば、より多くの情報が得られます。

要約する

これで、JavaScript が userAgent を通じていくつかの一般的なブラウザを判別する方法についてのこの記事は終了です。より関連性の高い JS userAgent ブラウザ判別コンテンツについては、123WORDPRESS.COM の以前の記事を検索するか、次の関連記事を引き続き参照してください。今後とも 123WORDPRESS.COM をよろしくお願いいたします。

以下もご興味があるかもしれません:
  • JSはuserAgent属性を分析してブラウザの種類とバージョンを決定します
  • JavaScriptはnavigator.userAgentを通じてさまざまなブラウザを識別します。
  • jsはさまざまなブラウザを識別し、userAgentに基づいて判断します

<<:  シーケンス関数を実装する MySQL コード

>>:  Docker ベースの MySQL マスタースレーブ レプリケーションを実装する方法

推薦する

mysql5.7.33 で誤って ibdata ファイルを削除した後にデータを回復する方法

目次1. シナリオの説明: 2. 事例のデモンストレーション: 2.1. MySQLの障害発生前にデ...

Vue モバイル開発で better-scroll を使用するときにクリック イベントが失敗する問題の解決策

最近、モバイル プロジェクトの開発方法を学ぶために vue を使用し、スクロールには better-...

標準のMySQL (x64) Windowsバージョンのインストール手順の詳細な説明

MySQL x64 はインストーラーを提供していません、インストーラーを提供していません、インストー...

MySQLストレージエンジンについて学びましょう

目次序文1. MySQL メインストレージエンジン: 2. さまざまなストレージエンジンがテーブルを...

ゲーム着物メモ問題の簡単な分析

本日、ゲームを再起動した後、バックアップしたデータをターゲットデータベースにインポートできないことが...

HTML ページの部分更新の実装コード

イベント応答の更新: 要求されたときのみ更新1. JS HTML DOM または jQuery を介...

Ubuntu 16.04 64ビット版を3つのステップで32ビットプログラムと互換性を持たせる

ステップ1: システムのアーキテクチャを確認する dpkg --print-architecture...

docker を使用して Redis マスター/スレーブを構築する方法

1. Docker環境を構築する1. Dockerfileを作成する Centos:latest か...

Linux サーバー上で nvidia-docker 環境を設定するプロセスの詳細な説明

Docker はコンテナに相当し、必要な動作環境に応じて対応する動作環境を構築できます。このとき、各...

ウェブページにコンテンツが多すぎる場合に、下から上へ素早く戻る方法

Web フロントエンド開発では、ページに多くの記事を表示することが避けられません。記事の最後にあるク...

アクティビティページでの CSS3 アニメーション効果の適用

背景あっという間に忙しい一年が終わり、毎年恒例のイベントの時期がやってきます。お祭り気分を演出するに...

フロントエンドの状態管理(パート 1)

目次1. フロントエンドの状態管理とは何ですか? 2. ヴュークス3. バス4. ウェブストレージ序...

http:// の代わりに // を使用する利点は何ですか (アダプティブ https)

//デフォルトプロトコル/ デフォルト プロトコルの使用は、リソース アクセス プロトコルが現在の...

HTML で margin:0 auto を使用するとページ全体が中央に配置されない問題の解決方法

今日、jsp ページを書きました。<div style="margin:0 auto...

背景画像のみを180度回転させるCSS3実装例

1. 心の旅最近コックピットを書いていたときに、背景画像を単純に特定の角度に回転させるという問題につ...