请问用HTML5+ 如何实现长按图片保存到相册功能?
比如系统自带浏览器打开一个页面,长按页面上的图片会弹出保存到相册、发送给xxx的Action菜单。
求指导。
- 发布:2015-04-14 19:25
- 更新:2018-08-31 20:52
- 阅读:26622
请问如何实现长按图片保存到相册功能?
kulutana (作者)
//触摸长按事件
touch.on($img,'hold',function(){
var actionList = {title:'操作',cancel:"取消",buttons:[{title:"保存图片到相册"}]};
var imgSrc = this.src;
//弹出actionSheet选项
plus.nativeUI.actionSheet(actionList,function(e){
if(e.index==1){
//创建一个下载任务
var imgDtask = plus.downloader.createDownload(imgSrc,{method:"GET"},function(d,status){
//下载完成的回调函数
if (status == 200 ) {
plus.gallery.save(d.filename,function(){//保存到相册
plus.io.resolveLocalFileSystemURL(d.filename,function(entry){
entry.remove();//删除临时文件
});
return alert('图片已保存至相册');
});
}else{
alert("保存失败!" + status);
}
});
imgDtask.start();//开始下载任务
}
});
});
kulutana (作者)
谢谢,按照@DCloud_MUI_FXY 所说的方式已经实现了长按保存图片功能,但是plus.io.file好像没有提供删除文件的api来删除下载到download目录下的临时文件。
删除的话,试试这个
plus.io.resolveLocalFileSystemURL(filePath, function(entry) {
entry.remove( succesCB, errorCB );
}, function(e) {});
求救。。请问我这个代码为什么在Android中下载后保存到相册后无法查看,显示无缩略图,从手机发送到电脑的时候显示图片不存在,在iOS中就没有问题 ,是我哪里写错了吗?
document.getElementById("save").addEventListener('tap',function () {
plus.nativeUI.showWaiting('正在下载,请稍后');
var url = "http://pic.nipic.com/2007-11-09/2007119122519868_2.jpg";
var options = {
method: "GET",
filename: '_doc/'
};
dtask = plus.downloader.createDownload(url, options, function(download, status) {
console.log(download.filename);
plus.nativeUI.closeWaiting();
plus.gallery.save(download.filename, function() {
mui.toast('保存成功');
});
});
dtask.start();
});
kulutana (作者)
前段时间很多朋友问我怎样实现长按保存图片到相册的功能,现在我把完整的代码贴出来供大家参考。
长按事件用的上百度touch.js库,大家可以自行百度找到。
//img对象
var $img = $('<img />').attr('src', imgServer + data[i].img_url).css({
maxWidth: '100%',
border: '0px solid #FFC0CB'
});
Mars_Zhong
请问一下plus.downloader.createDownload不走回调函数是什么原因?
2015-10-21 10:20
老火
很好很强大,正好需要,谢谢
2016-06-13 10:04
酱汁
楼主,这个方法下载https地址的图片,安卓会有问题,你有遇到吗?
2017-09-27 16:35