我已经尝试了所有可能的方法来访问 cordova 上 webview 上的摄像头。
它适用于 Android,但不适用于 iOS。
谁能解释一下如何在 iOS 上通过 cordova webview 实现访问相机功能,谢谢。
Inappbrowser side (Angular)
if (navigator.mediaDevices && navigator.mediaDevices.getUserMedia) {
navigator.mediaDevices
.getUserMedia({ video: { facingMode: 'environment' } })
.then(stream => {
// this.videoDom.srcObject = stream;
this.videoDom.srcObject = stream;
this.videoDom.setAttribute('playsinline', 'true');
this.videoDom.play();
this.stream = stream.getTracks();
requestAnimationFrame(tick);
})
}
Cordova side
我在ios平台上安装了cordova-plugin-camera并在config.xml中添加了权限。
最佳答案
在 iOS11/12 上 navigator.getMediaDevices 不适用于 WKWebView 和 UIWebView。它仅适用于 Safari。 (https://forums.developer.apple.com/thread/88052)
WebRTC is only supported in Safari. No WKWebView, not even SFSafariViewController.
您可以尝试正常使用该插件应该可以解决您的问题:https://github.com/phonegap/phonegap-plugin-media-stream
navigator.mediaDevices.getUserMedia({
'audio': true,
'video': {
facingMode: 'environment'
}
}).then(function(mediaStream) {
// Do what you want with
}
关于ios - 是否可以从 iOS 上的 inappbrowser/webview 访问相机,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55041319/