簡體   English   中英

iOS getUserMedia 的 Bowser 未定義

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM