kulutana
kulutana
  • 发布:2015-04-14 19:25
  • 更新:2018-08-31 20:52
  • 阅读:26246

请问如何实现长按图片保存到相册功能?

分类:HTML5+

请问用HTML5+ 如何实现长按图片保存到相册功能?
比如系统自带浏览器打开一个页面,长按页面上的图片会弹出保存到相册、发送给xxx的Action菜单。
求指导。

2015-04-14 19:25 负责人:无 分享
已邀请:
kulutana

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();//开始下载任务  
						}  
					});  
				});
  • Mars_Zhong

    请问一下plus.downloader.createDownload不走回调函数是什么原因?


    2015-10-21 10:20

  • 老火

    很好很强大,正好需要,谢谢


    2016-06-13 10:04

  • 酱汁

    楼主,这个方法下载https地址的图片,安卓会有问题,你有遇到吗?


    2017-09-27 16:35

kulutana

kulutana (作者)

5+的SDK里面gallery对象提供的save方法仅支持本地路径。无法支持网络路径。

DCloud_UNI_FXY

DCloud_UNI_FXY

目前暂未更快捷的方法

1.第一步:使用download下载网络图片到本地

2.第二步:使用gallery将本地图片保存到相册

  • 蔡繁荣

    期望提供更快捷的方法,毕竟这样的用法不够优雅


    2015-07-30 17:43

kulutana

kulutana (作者)

谢谢,按照@DCloud_MUI_FXY 所说的方式已经实现了长按保存图片功能,但是plus.io.file好像没有提供删除文件的api来删除下载到download目录下的临时文件。

DCloud_UNI_FXY

DCloud_UNI_FXY

删除的话,试试这个

plus.io.resolveLocalFileSystemURL(filePath, function(entry) {  
							entry.remove( succesCB, errorCB );  
						}, function(e) {});
kulutana

kulutana (作者)

ok了!这个功能已经实现,感谢 @DCloud_MUI_FXY 的指点!

  • 帝普一世

    您好,我也需要实现长按图片保存到相册的功能,,因为我不懂JS,所以看到你的帖子,也没法实现。能帮我搞定吗,付费也可以。QQ:43369706


    2015-09-07 01:25

oO1阳阳1Oo

oO1阳阳1Oo

求救。。请问我这个代码为什么在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();  
		});
Geeker

Geeker

请问楼主是个美媚吗?

xiao555

xiao555

楼主,能给我你的代码看看嘛?我想知道怎样用gallery将图片保存到本地相册,看文档试着做不成功

kulutana

kulutana (作者)

前段时间很多朋友问我怎样实现长按保存图片到相册的功能,现在我把完整的代码贴出来供大家参考。
长按事件用的上百度touch.js库,大家可以自行百度找到。

//img对象  
var $img = $('<img />').attr('src', imgServer + data[i].img_url).css({  
      maxWidth: '100%',  
      border: '0px solid #FFC0CB'  
});
stock2

stock2

感谢楼主分享, 虽然我现在没有用到.
建议 版主们 应该对 类似的用户 白名单回答问题.
让用户 每个帖子都能完美结贴. 后来者在前者的肩膀上继续前行.
后续才越来越好呀.

小闹

小闹

为什么用三方的touch.js库呢?5+本身的长按事件不能用吗?

酱汁

酱汁 - 前端开发

楼主,这个方法下载https地址的图片,安卓会有问题,你有遇到吗?

4***@qq.com

4***@qq.com - 90后IT男

请问楼主,save的时候的本地路径是什么

n***@qq.com

n***@qq.com

我喜欢 以后也许会有用

啊哈丶

啊哈丶

打包安装到真机后 IOS可以保存图片到本地,安卓不可以,求解 谢谢

  • 8***@qq.com

    请问您的问题解决了吗?


    2019-03-09 16:01

  • 8***@qq.com

    问题解决了,启用了一下原生混淆。安卓的就可以保存到本地了


    2019-03-09 17:58

该问题目前已经被锁定, 无法添加新回复