[英]Bowser for iOS getUserMedia is undefined
我试图让 WebRTC 与 iOS 的Bowser浏览器一起工作。但无论我尝试navigator.getUserMedia
是未定义的。
我正在运行 iOS 8.3 的 iPhone6 上测试该页面。
这就是我的设置方式:
var localMediaStream;
navigator.getUserMedia = navigator.getUserMedia || navigator.webkitGetUserMedia || navigator.mozGetUserMedia;
window.onload = function() {
var video = document.getElementById('video');
navigator.getUserMedia({video: true}, function(stream) {
video.src = window.URL.createObjectURL(stream);
localMediaStream = stream;
}, function(err) {
if(err) throw err;
});
};
我得到的错误是:
TypeError: undefined is not a function (evaluating 'navigator.getUserMedia')
如果我不进行功能检测并直接使用navigator.webkitGetUserMedia
(据我所知,这是 Bower 中应该存在的方法),我会得到同样的错误。
做这个
navigator.getUserMedia = navigator.getUserMedia || navigator.webkitGetUserMedia || navigator.mozGetUserMedia;
内部加载
但是对我来说,第一次打开页面时它不起作用。 页面刷新后就可以了。
UPD:这是因为 Bowser 的 javascript 注入太晚(或根本没有注入)。 这是一个 iOs 的 webview 问题。 但是 bowser 的团队说他们已经用新的控件而不是 Web 视图替换了它,而是用较新的控件(不记得名字,抱歉)。
navigator.mediaDevices.getUserMedia(..)
Safari 11 及更高版本应得到全面支持。 它只能从 SSL 域访问,因此如果在本地开发,请尝试将https://
前缀添加到您的别名。 https://developer.mozilla.org/zh-CN/docs/Web/API/MediaDevices/getUserMedia
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.