一、API方法
wx.chooseImage({
count: 1, // 默认9
sizeType: ['original', 'compressed'], // 可以指定是原图还是压缩图,默认二者都有
sourceType: ['album', 'camera'], // 可以指定来源是相册还是相机,默认二者都有
success: function (res) { // 返回选定照片的本地文件路径列表,tempFilePath可以作为img标签的src属性显示图片
var tempFilePaths = res.tempFilePaths
}
})
二、对应的手机存储目录
tencent/MicroMsg/wxafiles/小程序appID/tmp_*
三、测试用例及分析情况
测试步骤:
第1步、清理照片的逻辑是,假设拍摄照片的时间顺序,
2017-04-25 10:00 拍摄的3张 (将返回的tempFilePaths 加入本地缓存) ,
2017-04-25 12:00 拍摄的3张(将返回的tempFilePaths 叠加到本地缓存)
2017-04-26 08:00 拍摄的3张(将返回的tempFilePaths 叠加到本地缓存)
2017-04-26 09:58 拍摄的3张(将返回的tempFilePaths 叠加到本地缓存)
注:将 tempFilePaths 叠加缓存的的目的是为了解决业务需求,用户在户外拍摄的照片,因为流量费用比较高,需要保存下来,等等回到室内有wifi的环境下,使用wifi再上传服务器上。(这个时间差基本保持在24小时以内)
第2步、这时本地缓存的文件数量是12张(tmp_*文件个数)
第3步、2017-04-26 10:00 时,发现拍摄的12张照片全部被清空了,在(tencent/MicroMsg/wxafiles/小程序appID/tmp_*)下面查找也没有了,天哪!这个是什么逻辑?????
四、个人建议:
这个清理是不是应该对tmp_*文件做一个时间戳,根据每个文件的时间戳来判断是否到了清理时间。
结合上面的例子:
1、 到2017-04-26 10:00时,应该只是把2017-04-25 10:00拍摄的3张、以及2017-04-25 10:00时间之前的清理掉。
2、 到2017-04-26 12:00时,应该只是把2017-04-25 12:00拍摄的3张、以及2017-04-25 12:00时间之前的清理掉。
3、等到下次触发清理事件时,同理倒退24小时,清理24小时之前的照片,保留24小时以内的照片,这样照片基本保留24小时左右的照片,如果按照整点清理的话是就是保持25小时。