1. ホーム
  2. javascript

[解決済み] 今日現在、navigator.platformに指定できる値の一覧は何ですか?[クローズド]

2022-12-06 18:45:30

質問

これが頻繁に変更されることは分かっていますが navigator.platform ?

ここまでのリスト

  • HP-UX
  • Linux i686
  • Linux armv7l
  • Mac68K
  • MacPPC
  • マッキントッシュ
  • SunOS
  • Win16
  • Win32
  • WinCE
  • iPhone
  • iPod
  • iPad
  • アンドロイド
  • ブラックベリー
  • オペラ

どのように解決するのですか?

免責事項です。 このプロパティはブラウザから送信されるため、ユーザーエージェント文字列と同様に偽装することができることに注意してください。決して navigator オブジェクトが完全に正確であることに依存しないでください。

定義

私が知る限り、このプロパティがかなり前から存在しているにもかかわらず、すべての可能な `navigator.platform` 値の単一の公開リストがありません。さらに悪いことに、このプロパティの定義は長年にわたって変更されてきました。以前は

navigator.platform はブラウザがコンパイルされたマシンの種類を表します。

これは基本的に、このプロパティが返す Win16 を返すことができるということです。

もちろん、W3Schools は古い定義を掲載しています (リンクするつもりもありません)。 W3 MDN は異なる定義で合意していますが。

navigator.platform はブラウザが実行されているプラットフォームを表します。

それでも、この定義は少し曖昧です。一昔前であれば、「プラットフォーム」は CPU アーキテクチャかオペレーティング システムのどちらかでした。近年では、ハンドヘルド デバイスやメディア デバイスもプラットフォームとなりえます。



解釈

Web 上のすべてのものと同様に、私たちの運命は強力なブラウザ ベンダーの手に委ねられています。この場合、すべての主要なブラウザ (IE、Safari、Firefox、Chrome) は、私の 64 ビット Windows マシンが `Win32` プラットフォームであることに同意しています。つまり、64ビット用にコンパイルされたものがないため、Windowsに関しては古い定義に固執しているのです。しかし、明るい面を見ましょう。少なくとも、今回だけは全員が何かに同意しているのです。

携帯機器やメディア機器に関しては、私たちは少し幸運なようです。あなたがすでに質問で述べているように、iPhone、iPod、iPadは、すべて同じオペレーティングシステムを実行しているにもかかわらず、それぞれ独自の価値を持っています。任天堂やソニーのデバイスも、すべてユニークな値を返しています。ですから、今だけ navigator.platform がおもしろく見えてきました。

しかし、そこにiPhone用のOpera Miniがやってきて、再び事態を混乱させます。Opera Mini は実際にはコード エンジンのバージョン番号を返しますが、これは完全に異なる解釈で platform の解釈は、これまで私たちが遭遇してきたものとはまったく異なっています。今、私たちは振り出しに戻り、なぜこのテーマに関する情報が少ないのかを理解し始めています。

解釈はさまざまで、完全な答えを持っているわけではありませんが、を研究している他の人のために、2 セントを追加する必要があると感じました。 navigator.platform プロパティを研究している他の人のために、2 つの意見を加えるべきだと思いました。



リスト

以下は、複数のソースで検証できた、私が知っている値の (間違いなく非限定的な) リストです。定義が曖昧なため、これらを順序付ける最善の方法は何なのか、あまりよく分かりません。今のところ、オペレーティング システムやデバイス ブランドに基づいていくつかのカテゴリーに分け、該当する場合は追加情報とリリース日をリストアップしました。

アンドロイド

Android端末のテストは本当に難しいです。Android端末は Android を Linux のバージョンと同じくらい頻繁に返します。たとえば、Nexus 5 の携帯電話では、Android ブラウザと Chrome の両方が Linux armv7l . まれに、Android デバイスは null を返すこともあります (代わりに undefined ).

  • Android (2008)
  • Linux 上記の注意事項を参照してください。
  • null

アップル

iOS に関しては。Safari、Chrome、Mercury は同意しますが、Opera は混乱します。

  • iPhone (2007)
  • iPod (2007)
  • iPad (2010)
  • iPhone Simulator : Xcode に同梱されているシミュレータ
  • iPod Simulator Xcode と共に出荷されるシミュレータです。
  • iPad Simulator Xcode と共に出荷されるシミュレータです。
  • Macintosh
  • MacIntel : インテル プロセッサー (2005年)
  • MacPPC : PowerPC プロセッサ
  • Mac68K : 68000 プロセッサ
  • Pike v7.6 release 92 : すべての iPhone で Opera Mini 5 を利用可能に (2009年)
  • Pike v7.8 release 517 : すべての iPhone で Opera Mini 7 を利用可能に (2012年)

BlackBerry

  • BlackBerry (2003)

FreeBSD

  • FreeBSD
  • FreeBSD i386 : x86 (IA-32) プロセッサ
  • FreeBSD amd64 : AMD x86-64 プロセッサ

Linux

多くのプラットフォームがこれをベースに構築されているため、マジで信頼性が低い。たとえば、ChromeOS 上の Chrome や Linux x86-64 では、どちらも Linux i686 を返します。

Linux ARM はアーキテクチャフラグをリストアップしていることに注意してください、例えば armv5tej は、Thumb サポート ('T')、DSP 命令セット ('E')、および Jazelle サポート ('J') を備えた v5 ARM アーキテクチャを表わします。

  • Linux
  • Linux aarch64
  • Linux armv5tejl
  • Linux armv6l
  • Linux armv7l
  • Linux armv8l
  • Linux i686
  • Linux i686 on x86_64
  • Linux i686 X11 : X11 Window System をベースとした
  • Linux MSM8960_v3.2.1.1_N_R069_Rev:18 : ソニー Xperia V
  • Linux ppc64
  • Linux x86_64
  • Linux x86_64 X11 : X11 Window System をベースとした

マイクロソフト

64 ビットの Windows 8 でさえも、それらはすべて Win32 .

  • OS/2 (1994†)
  • Pocket PC
  • Windows
  • Win16 : Windows 3.1x (1992†)
  • Win32 : Windows 95 以上
  • WinCE

Mozilla (Firefox OS)

Firefox OSのWebブラウザでは、空の文字列が返されます。参照 このバグレポート .

カイオス

KaiOSのウェブブラウザ(Firefoxベース)も空文字列を返します(Firefox OSと同じ)。参照 このバグレポート .

任天堂

  • New Nintendo 3DS (2014)
  • Nintendo DSi (2008)
  • Nintendo 3DS (2011)
  • Nintendo Wii (2006)
  • Nintendo WiiU (2012)

OpenBSD

  • OpenBSD amd64

シンビアン / S40

  • Nokia_Series_40 (1999†)
  • S60 (2002†)
  • Symbian : Symbian での Opera
  • Symbian OS

手のひら

  • PalmOS (1996)
  • webOS (2009)

ソラリス

  • SunOS
  • SunOS i86pc
  • SunOS sun4u : SPARC プロセッサ

ソニー

  • PLAYSTATION 3 (2006)
  • PlayStation 4 (2013)
  • PSP : プレイステーション・ポータブル (2004年)

さまざまな

  • HP-UX : ヒューレットパッカード UniX
  • masking-agent : Masking Agent for Firefox を使用する場合、値はこれに変更されます。
  • WebTV OS
  • X11 : X11 ウィンドウシステム

このリストにないデバイスをお持ちですか。あなたのデバイスのプロパティとその navigator.platform の値 (自由に このJSFiddle を使って値を探してください)。

これが役に立つといいのですが。