我试图让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中应该存在的方法),我会得到同样的错误。
答案 0 :(得分:1)
这样做
navigator.getUserMedia = navigator.getUserMedia || navigator.webkitGetUserMedia || navigator.mozGetUserMedia;
在onload中
但是对我来说,当你第一次打开页面时它并不起作用。 页面刷新后,它可以工作。
UPD:由于Bowser的javascript被注入太晚(或根本没有注入)这一事实。这是iOs的webview问题。但是bowser的团队说他们已经用新的控制而不是网络视图取代了它,而是更新的(不记得这个名字,对不起)。