在我的网站上,它需要访问摄像头或网络摄像头。但是基于https://forums.developer.apple.com/thread/88052的ios webview尚不支持webRTC(请cmiiw)。因此,我试图找到一种无需webRTC即可访问它的方法。有吗?
以下代码是利用webRTC的一部分吗?因为console.log显示在ios webview上
function hasGetUserMedia() {
return !!(navigator.getUserMedia || navigator.webkitGetUserMedia ||
navigator.mozGetUserMedia || navigator.msGetUserMedia);
}
//then, somewhere in the code
if (!hasGetUserMedia()) {
console.log( "webRTC is not supported in your browser" );//it shows up on ios webview
}
//other code
navigator.mediaDevices.getUserMedia({
audio: false, //no audio
video: {deviceId: {exact: videoSource.camera_id} }
})
如果是,那么不使用webRTC并可以在android webview,ios webview和Web浏览器上运行的解决方法是什么?
答案 0 :(得分:5)
iOS WebViews不支持getUserMedia,这意味着您将完全无法访问用户的相机。截至2019年1月,没有任何解决方法。我还在等待getUserMedia
在iOS WebViews上受支持,所以我感到您很痛苦。
每当对这样的浏览器功能有疑问时,发现caniuse.com很有帮助。在这种情况下,它表明iOS的最新版Safari和Chrome(于2018年9月发布)支持getUserMedia
,但它...
在独立运行(“已安装”)的PWA中不起作用,
getUserMedia
在UIWebView
或WKWebView
中不返回任何视频输入设备,而仅在Safari中直接返回。
如果您只是想让您的网站在iOS设备上运行,那么您很幸运。 除非您要为App Store制作应用程序,否则不需要使用WebView 。 getUserMedia
适用于在iOS上使用Safari浏览您的网站的用户!而且,如果有帮助,您的用户甚至可以将指向您网站的链接添加到iOS的主屏幕上,这使其看起来非常像一个应用程序。
getUserMedia
控制对用户相机和麦克风的访问,而WebRTC可以帮助您将音频/视频发送到另一个客户端,例如在视频聊天中。在这里,您首先要获取视频,因此不必担心WebRTC,但是当您这样做时,我建议您查看This article对我有帮助的。
如果您想自己测试getUserMedia
或WebRTC函数,请尝试使用These provided samples,这样可以确保这不是您自己的代码的错:)