PWA保存在没有下载提示的情况下拍摄的照片



我正在尝试构建一个渐进式网络应用程序,该应用程序使用设备相机拍照,但希望将其保存到他们的照片库中,而不会像本地相机应用程序那样被提示下载。。这可能吗。。我还没有发现一种方法,谷歌上也没有太多关于它的信息,如果它被上传到云端会有什么不同吗?

感谢

https://whatwebcando.today/photos.html表明这可能是可能的。

capturer = ImageCapture(streamVideoTrack)

从媒体流视频轨道创建一个图像捕获器。

capturer.takePhoto()

返回使用当前设置拍摄的照片解析的Promise。

capturer.setOptions(photoSettings)

为后续捕获配置photoSettings;如果可见,则可以在用作输入的轨迹中看到配置的效果。

这是示例代码:

function getUserMedia(options, successCallback, failureCallback) {
var api = navigator.getUserMedia || navigator.webkitGetUserMedia ||
navigator.mozGetUserMedia || navigator.msGetUserMedia;
if (api) {
return api.bind(navigator)(options, successCallback, failureCallback);
}
}
var theStream;
function getStream() {
if (!navigator.getUserMedia && !navigator.webkitGetUserMedia &&
!navigator.mozGetUserMedia && !navigator.msGetUserMedia) {
alert('User Media API not supported.');
return;
}
var constraints = {
video: true
};
getUserMedia(constraints, function (stream) {
var mediaControl = document.querySelector('video');
if ('srcObject' in mediaControl) {
mediaControl.srcObject = stream;
mediaControl.src = (window.URL || window.webkitURL).createObjectURL(stream);
} else if (navigator.mozGetUserMedia) {
mediaControl.mozSrcObject = stream;
}
theStream = stream;
}, function (err) {
alert('Error: ' + err);
});
}
function takePhoto() {
if (!('ImageCapture' in window)) {
alert('ImageCapture is not available');
return;
}
if (!theStream) {
alert('Grab the video stream first!');
return;
}
var theImageCapturer = new ImageCapture(theStream.getVideoTracks()[0]);
theImageCapturer.takePhoto()
.then(blob => {
var theImageTag = document.getElementById("imageTag");
theImageTag.src = URL.createObjectURL(blob);
})
.catch(err => alert('Error: ' + err));
}

看来你可以拍照了。。。不过,我看不到任何地方表明你可以将这张照片保存在用户存储中。我很乐意犯错。

相关内容

最新更新