私はWebサイトを作成していますが、公式に発表されたときにMicrosoft Edgeと互換性を持たせたいと考えています。具体的には、モバイル版です。 Edge Mobile Browserを識別する文字列を誰もが知っていますか(たとえば、「IE Mobile」はInternet Explorerのモバイルバージョンを識別します)。
Microsoft Edge UA文字列:
Mozilla/5.0(Windows NT 10.0)AppleWebKit/537.36(KHTML、Geckoなど)Chrome/42.0.2311.135 Safari/537.36 Edge/12.10136
Neowinは最近、MicrosoftのWindows 10(Spartan)用の新しいブラウザーがChrome UA文字列「Mozilla/5.0(Windows NT 10.0; WOW64)AppleWebKit/537.36(KHTMLなど) Gecko)Chrome/39.0.2171.71 Safari/537.36 Edge/12.0″。これは意図的に行われます。
また、Chromeではなく、文字列全体が「Edge/12.0」で終わっていることにも気付くでしょう。
これは、MicrosoftがIE 11で行ったものからの根本的な逸脱ではないことを指摘する必要があります。Windows8では、Mozilla/5.0(Windows NT 6.3; Trident/7.0; rv:11.0)この投稿で説明したように、Gecko。
ユーザーエージェントスニッフィングとは何ですか?
多くの場合、Web開発者はブラウザの検出のためにUAスニッフィングを行います。 Mozillaは彼らのブログでそれをうまく説明しています。
異なるブラウザーに異なるWebページまたはサービスを提供することは、通常、悪い考えです。ウェブは、使用しているブラウザやデバイスに関係なく、誰でもアクセスできるように設計されています。特定のブラウザーをターゲットにするのではなく、機能の可用性に基づいてWebサイトを段階的に強化するWebサイトを開発する方法があります。
多くの場合、怠け者の開発者はUA文字列を探り、視聴者が使用していると思われるブラウザに基づいてWebサイトのコンテンツを無効にします。 Internet Explorer 8は開発者のフラストレーションの共通点であるため、ユーザーがIEの任意のバージョンを使用しているかどうかを頻繁に確認し、機能を無効にします。
Edgeチームは、ブログでこれについてさらに詳しく説明しています。
すべてのユーザーエージェント文字列には、トークンだけでなく、「意味のある」バージョン番号など、実際に使用しているブラウザよりも多くの他のブラウザに関する情報が含まれています。
Internet Explorer 11のUA文字列:
Mozilla/5.0(Windows NT 6.3; Trident/7.0; rv:11.0)Geckoのように
Microsoft Edge UA文字列:
Mozilla/5.0(Windows NT 10.0)AppleWebKit/537.36(KHTML、Geckoなど)Chrome/42.0.2311.135 Safari/537.36 Edge/12.10136
UserAgentプロパティは、W3Cの議論の中でパトリックH.ラウケによって「嘘の拡大し続けるパック」として適切に説明されています。 (または、むしろ、古いUAスニッフィングコードがすぐに倒れることなく、実際に有用で正確な情報を少しでも伝えようとする十分なレガシーキーワードを追加するというバランスの取れた行為です。)
Web開発者は、UAスニッフィングを可能な限り避けることをお勧めします。最新のWebプラットフォーム機能は、ほとんどすべて簡単に検出できます。たとえば、Modernizrライブラリは、機能を検出するための素晴らしいシンプルな方法です。
過去1年間に、Microsoft Edgeを検出するために更新されたUA-sniffingサイトがいくつかありました...レガシーIE11コードパスを提供するためだけです。 Microsoft EdgeはIE11の動作ではなく「WebKit」の動作に一致するため、これは最善のアプローチではありません(Edge-WebKitの違いはバグを修正することに関心があります)。
私たちの経験では、Microsoft Edgeはこれらのサイトの「WebKit」コードパスで最適に動作します。また、インターネットがさまざまなデバイスで利用可能になっているため、不明なブラウザは適切であると想定してください。現在の既知のブラウザのごく一部でのみ動作するようにサイトを制限しないでください。これを行うと、あなたのサイトは将来的にほぼ確実に壊れます。
結論
Chrome UA文字列を提示することにより、これらの開発者が使用しているハッキングを回避し、ユーザーに最高のエクスペリエンスを提示できます。
MDN記事 には、「ユーザーエージェント」を使用したブラウザーの検出と、そのようなことを行う場合に留意すべきことがあります。
それとは無関係に、 MSDNライブラリ は、「エッジ」のユーザーエージェントの変更を示します。
MSDNから ユーザーエージェント文字列の変更 ページ:
Windows 10 Mobile Insider PreviewのMicrosoft Edgeには、次のユーザーエージェント文字列があります。
Mozilla/5.0(Windows Phone 10.0; Android 4.2.1;デバイス情報)AppleWebKit/537.36(KHTML、Geckoなど)Chrome/42.0.2311.135 Mobile Safari/537.36 Edge/12。<OS Build#>
IEandMicrosoft Edgeを検出するために正規表現を探している人のために、私は別のものを再利用しました SO answer =および追加されたエッジ
/(?:\b(MS)?IE\s+|\bTrident\/7\.0;.*\s+rv:|\bEdge\/)(\d+)/
Edgeバージョンを反復することにした場合に備えて、Edgeをチェックしてから、その他の数字をチェックしました。
編集:はいを更新するために、Edgeと古いIEバージョンは非常に異なるブラウザーと見なされます。私のユースケースでは、マーケティング目的でIEブランドブラウザーを検出する必要がありました(ユーザーがInternet Explorer/Edgeブラウザーを使用している場合、そのために何かを表示したかったのですが)。
現在、Webエージェントはサイトを適合させるための重要なポイントではありませんが、ブラウザーの機能を検出する必要があります。
さらに言えば、 Modernizr のようなライブラリを使用して、ユーザーが使用しているブラウザのベンダーやバージョンに関係なく、特定のブラウザ機能を確認する必要があります。
注:ダウン票にもかかわらず、誰もが このQ&Aのその他の回答 を確認する必要があります。ユーザーエージェントスニッフィング。それが私自身の答えの背後にある理由であり、特定のブラウザではなく機能に基づいてサイトを適応させることを皆に提案します。
Mozilla/5.0(Windows Phone 10.0; Android 4.2.1;デバイス情報)AppleWebKit/537.36(KHTML、Geckoなど)Chrome/39.0.2171.71 Mobile Safari/537.36 Edge/12.0
SAがブラウザの種類を知って管理者に報告する必要があることを忘れていました。正確さのために、どのブラウザが使用されているかを明確にする必要があります。クリーンビルドでは、Edgeユーザーエージェントには「Edge」キーワードがありません。
Mozilla/5.0 +(Windows + NT + 10.0; + Win64; + x64)