0

この質問は以前に尋ねられましたが、答えは私が必要としているものではありません。

Microsoft Edge でタブレットかどうか (デスクトップ) を区別する必要があります。

1) 次のスレッド: Windows 10 で JavaScript を使用して、Edge および IE11 で「タブレット モード」を検出できますか?

確かにうまくいきましたが、Microsoft が次のバージョンで動作を変更するのではないかと心配しています。

彼らがそうしないことをどのように確認できますか?

デスクトップで定義されているため、 での回答if condition of window.PointerEventはまったく機能しません。

ここで提案されているように、CSS Media Queries Interaction メディア機能を使用できません: ユーザーが Microsoft Edge タブレットまたはデスクトップ ブラウザーを起動したかどうかを検出する方法はありますか?

4

1 に答える 1

0

Edge ブラウザー機能のハードウェア固有の違いは次のとおりです。

唯一の違いは、特定のデバイス固有の品質によるものです。たとえば、ハードウェア アクセラレーションがないためコーデックのサポートが電話で異なる場合があり、Flash は Windows 10 Mobile ではサポートされていません。Windows 10 Mobile はバックグラウンド モデルが異なるため、RTC (リアルタイム通信) API も現在サポートされていません。最後に、Windows 10 Mobile は、モバイル デバイスに適した最新のタッチ中心の電力効率の高いエクスペリエンスを提供するために、Flash をサポートしていません。このため、Flash は Microsoft Edge in Continuum ではサポートされていません。

RTC 機能を検出するには、次のコードを使用します。

if (RTCRtpCapabilities)
  {
  initRTC();
  }
function initRTC()
  {
  var recvAudioCaps = RTCRtpReceiver.getCapabilities("audio"); 
  var recvVideoCaps = RTCRtpReceiver.getCapabilities("video"); 
  var sendAudioCaps = RTCRtpSender.getCapabilities("audio");
  var sendVideoCaps = RTCRtpSender.getCapabilities("video"); 
  }

Flashを検出する最も簡単な方法は、 ExternalInterface 呼び出しを使用する Flash ムービーを埋め込むことです。

オブジェクトのプロパティは、navigatorタブレットと電話を区別できる必要があります。例えば:

navigator.cpuClass

x86Surface デバイスでは返されるはずですがother、電話では返されます。

また、スマートフォンのディスプレイをテレビにキャストすると、ユーザー エージェントが変化します。それは次のとおりです。

  • Microsoft Edge UA (モバイル)

    Mozilla/5.0 (Windows Phone 10.0; Android 6.0.1; Microsoft; <Device>) AppleWebKit/<Rev (KHTML, like Gecko) Chrome/<Rev> Mobile Safari/<Rev> Edge/<Rev>
    

に:

  • Microsoft Edge UA (継続)

    Mozilla/5.0 (Windows NT 10.0; ARM) AppleWebKit/<Rev> (KHTML, like Gecko) Chrome/<Rev> Safari/<Rev> Edge/<Rev>
    

デスクトップとの比較:

  • Microsoft Edge UA (デスクトップ)

    Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/<Rev> (KHTML, like Gecko) Chrome/<Rev> Safari/<Rev> Edge/<Rev>
    

参考文献

于 2016-08-30T16:17:11.317 に答える