2

WebRTC データチャネルは、夜間に Firefox でのみ機能します。クライアント側で確認するにはどうすればよいですか?

コードは次のとおりです。

if (/Firefox[\/\s](\d+\.\d+)/.test(navigator.userAgent)){ //test for Firefox/x.x or Firefox x.x (ignoring remaining digits); 

 var ffversion=new Number(RegExp.$1) // capture x.x portion and store as a number

 if (ffversion>=5)

  document.write("You're using FF 5.x or above")

 else if (ffversion>=4)

  document.write("You're using FF 4.x or above")

 else if (ffversion>=3)

  document.write("You're using FF 3.x or above")

 else if (ffversion>=2)

  document.write("You're using FF 2.x")

 else if (ffversion>=1)

  document.write("You're using FF 1.x")
}

else
 document.write("n/a")
4

8 に答える 8

7

ブラウザが現在使用しようとしている機能をサポートしているかどうかを簡単にテストできます。例えば:

if (!window.mozRTCPeerConnection)
    // error, browser doesn't support it

興味のある方は、こちらの興味深い記事をご覧ください: Hello Chrome, it's it's Firefox calling!

webkit基本的に、の代わりにプレフィックスを使用するだけで、Chrome で同じ機能を実装できますmoz

于 2013-02-08T14:18:07.383 に答える
5

Chrome のRTCDataChannelデモがsimpl.info/dcにあります。

これはあまり堅牢でも完全でもありませんが、webkitRTCPeerConnectionオブジェクトを作成して、createDataChannelメンバーがあるかどうかを確認できます。

try { // or if (webkitRTCPeerConnection) {...}
  var pc = new webkitRTCPeerConnection(null);
  if (pc && pc.createDataChannel) {
    var dc = pc.createDataChannel("sendDataChannel", {reliable: false});
    if (!!dc) {
      // doSomething()
    } 
  }
} catch (e) {
  // try some other instantiation 
}
于 2013-02-09T09:46:26.937 に答える
2

JavaScript の使用

var prefix;
var version;
if (window.mozRTCPeerConnection || navigator.mozGetUserMedia) {
  prefix = 'moz';
  version = parseInt(navigator.userAgent.match(/Firefox\/([0-9]+)\./)[1], 10);
} else if (window.webkitRTCPeerConnection || navigator.webkitGetUserMedia) {
  prefix = 'webkit';
  version = navigator.userAgent.match(/Chrom(e|ium)/) && parseInt(navigator.userAgent.match(/Chrom(e|ium)\/([0-9]+)\./)[2], 10);
}

if(prefix == 'moz' || prefix == 'webkit' && version > 41){
  console.log("Browser Support WebRTC")
} else {
  console.log("This Browser Not Support WebRTC")
}
于 2015-12-30T10:56:53.180 に答える
0

私はちょうど理解しました。ご助力いただきありがとうございます。 http://mozilla.github.com/webrtc-landing/

于 2013-02-08T15:00:02.413 に答える
0

一番上の答えは正しくありません。

if (window.RTCDataChannel) {
    // the browser support dataChannel
} else {
   // the browser does not support dataChannel
}

ブラウザが RTCPeerConnection に対応していれば、RTCDataChannel にも対応しているわけではありません。Edge などcreateDataChannelのインスタンスでRTCPeerConnection例外がスローされます。

于 2019-05-24T08:13:35.070 に答える