navigator.mediaDevices iOS 14.3 不可用

navigator.mediaDevices not available on iOS 14.3

过去,navigator.mediaDevices.getUserMedia() 在 WKWebView 上不可用,但现在已作为 iOS 14.3 的一部分添加,如这些 link 所示:

  1. https://developer.apple.com/forums/thread/88052?answerId=668022022#668022022(原帖)
  2. https://caniuse.com/stream(见注释 3)
  3. https://webkit.org/blog/11353/mediarecorder-api

但是,我将应用程序的部署目标更新为 iOS 14.3,然后将 Safari 调试器附加到 WKWebView,但是 navigator.mediaDevices 仍然 returns 未定义 运行 在 JS 控制台上。在上面的第三个 link 中,有关于使用 getUserMedia.

的步骤的建议

navigator.mediaDevices.getUserMedia can now be exposed to WKWebView applications. navigator.mediaDevices.getUserMedia is automatically exposed if the embedding application is able to natively capture either audio or video. Please refer to Apple documentation to meet these requirements.

为了以防万一,我已经按照这些步骤操作了,但我仍然面临同样的问题。

知道我可能做错了什么吗?有没有其他人遇到同样的问题?

我猜你的内容不安全。如果您导航到 https:// 位置,navigator.mediaDevices 将可用。

参见本页第二条注释:https://developer.mozilla.org/en-US/docs/Web/API/MediaDevices/getUserMedia

在Info.plist中添加: Privacy - Camera Usage Description https://developer.apple.com/documentation/avfoundation/cameras_and_media_capture/requesting_authorization_for_media_capture_on_ios

为了视频元素可以从您的相机播放:

let webConfiguration = WKWebViewConfiguration()
webConfiguration.allowsInlineMediaPlayback = true

玩法:https://developer.mozilla.org/en-US/docs/Web/API/MediaDevices/getUserMedia