iOS 11(Beta)中的webKit是否支持WebRTC?

时间:2017-07-12 10:36:54

标签: ios safari webkit webrtc wkwebview

我有一个适用于iOS11(Beta)上的Safari的网址音频/视频工作正常。 但是当我用WKWebView加载这个URL时,它给了我一个错误"不兼容的浏览器"当我在WebKit中检查我的浏览器版本时,它会在iOS 11&#34上显示"基于WebKit的浏览器;

所以真正的问题是,Apple是否已将此更改包含在iOS 11的开发人员BETA的WKWebview webkit(应该与Safari相同)中?

3 个答案:

答案 0 :(得分:22)

自iOS11以来,

Safari App 浏览器的 WKWebView 完全支持

部分支持

<强>解释

WebRTC有三个主要的JavaScript API:

  • MediaStream(又名getUserMedia)
  • RTCPeerConnection
  • RTCDataChannel

对于在 Safari应用 iOS11 +中运行的应用,支持所有WebRTC API。这包括getUserMedia。请务必使用 adapter.js 库以获得最佳兼容性,因为每个浏览器(包括Safari)都使用不同的名称进行实现。例如,在Safari中它是navigator.mediaDevices.getUserMedia()

但是,当使用 WKWebView SFSafariViewController 时,情况就不同了:

您仍然可以播放视频和视频。来自本地存储的音频或使用对等方捕获的实时媒体。希望在iOS 12中我们会看到一些进展......

答案 1 :(得分:7)

昨晚我在WebKit源代码中进行了一些挖掘,看起来WebRTC / MediaCapture的内容都是在一个只能通过私有API访问的首选项后面。还有一个提交提到了需要处理A / V权限的所有设置的应用程序。

无论如何,结果是getUserMedia在WKWebView中不起作用,即使在iOS11上(至少在beta4上):(

我已经提交了雷达(rdar:// 33571214和http://www.openradar.me/33571214),并鼓励其他人也这样做。

答案 2 :(得分:2)

我已经使用iOS Beta 4进行了一些测试,看起来甚至WKWebview和UIWebview也不支持将getUserMedia作为WebRTC API。

有人可以证实吗?