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

Ada*_*mar 16 safari webkit ios webrtc wkwebview

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

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

zax*_*y78 29

自iOS11以来,

的WebRTC是部分支持在WKWebView,
并完全支持 在Safari浏览器应用程序的浏览器.


解释:

WebRTC有三个主要的JavaScript API:

  • MediaStream(又名getUserMedia)
  • RTCPeerConnection
  • RTCDataChannel

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

但是,当使用WKWebView或SFSafariViewController时,它是一个不同的故事:

您仍然可以从本地存储流式传输视频和音频,或者使用对等方捕获的实时媒体.希望在iOS 12中我们会看到一些进展......

  • 对此有什么引用? (4认同)
  • iOS 12现已推出,WKWebView似乎仍然不支持getUserMedia.在Chrome 70 for iOS(使用WKWebView)中,navigator.mediaDevices.getUserMedia未定义. (4认同)
  • 这个主题在Apple开发者论坛上进行了讨论,最有可能的是,WKWebView在下一个"主要操作系统发布"之前不会提供对getUserMedia的支持,即不是在2018年9月左右的iOS 12之前.https://forums.developer.apple.com /线程/ 88052#线程后278803 (2认同)
  • 有什么办法可以将RTCMediaStream从本机代码传递到wkwebview? (2认同)

dpo*_*gue 8

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

在任何情况下,结果是getUserMedia在WKWebView中不起作用,即使在iOS11(至少是beta 4):(

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


小智 3

我已经用 iOS Beta 4 做了一些测试,似乎甚至 WKWebview 和 UIWebview 都不支持 getUserMedia 作为 WebRTC API。

有人可以证实这一点吗?