用于iOS getUserMedia的Bowser未定义

时间:2015-06-11 21:11:54

标签: javascript ios webrtc bowser

我试图让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中应该存在的方法),我会得到同样的错误。

1 个答案:

答案 0 :(得分:1)

这样做

navigator.getUserMedia = navigator.getUserMedia || navigator.webkitGetUserMedia || navigator.mozGetUserMedia;

在onload中

但是对我来说,当你第一次打开页面时它并不起作用。 页面刷新后,它可以工作。

UPD:由于Bowser的javascript被注入太晚(或根本没有注入)这一事实。这是iOs的webview问题。但是bowser的团队说他们已经用新的控制而不是网络视图取代了它,而是更新的(不记得这个名字,对不起)。