即使是小程序,也难免有dom *** 作
wx.createSelectorQuery()返回一个SelectorQuery对象实例
nodesRef.boundingClientRect([callback])
nodesRef.scrollOffset([callback])
nodesRef.fields(fields, [callback])
selectorQuery.in(component) 将选择器的选取范围更改为自定义组件component内
selectorQuery.select(selector) 在当前页面下选择第一个匹配选择器selector的节点,返回一个NodesRef对象实例,可以用于获取节点信息
selectorQuery.selectAll(selector) 在当前页面下选择匹配选择器selector的节点,返回一个NodesRef对象实例。它选择所有匹配选择器的节点。
selectorQuery.selectViewport() 选择显示区域,可用于获取显示区域的尺寸、滚动位置等信息,返回一个NodesRef对象实例
selectorQuery.exec([callback]) 执行所有的请求,请求结果按请求次序构成数组,在callback的第一个参数中返回
如果是单纯地使用uniapp做app或者h5开发,可以直接在上传的时候 uni.chooseImage 获取到图片的最后修改日期,那么可以使用其作为拍摄日期。但是,一切的一切都源于微信小程序的接口封装,使得不得不写两套。
这就不得不提到照片的exif了,可交换图像文件格式(英语:Exchangeable image file format,官方简称Exif,(https://blog.csdn.net/weixin_44350337/article/details/109558492 可以看看这篇文章,很长),好在我除了是个程序员,还是个摄影师。简单来说就是记录照片的一些信息的一种信息格式。
在各个论坛找了一圈后,试了很多种方式,都不行,后来,师傅给了一个连接让我试试,还是没成功,我就拿出我单反拍的原生照片去试,一下子就可以了,ohhhh。
有几个坑:
1、微信 qq发送到手机的图片会压缩 丢失exif信息
2、可以使用小程序,exif查看器,先试试看,该照片有没有exif信息再去快乐debugger
3、微信小程序没有dom,没有window。
不bb,上代码:
有个东西要引入(实例放最后,欢迎star,嘻嘻):
在这里插入图片描述
然后使用:
var myexif = require('./myexif.js')
click() {
const that = this
uni.chooseImage({
sizeType: ['original'],
success: e =>{
var array = wx.getFileSystemManager().readFileSync(e.tempFilePaths[0])
var r = myexif.handleBinaryFile(array)
console.log(r)
if (r &&r.data) {
this.shootTime =
r.data.DateTime.split(' ')[0]
.split(':')
.join('-') +
' ' +
r.data.DateTime.split(' ')[1]
}
// 这里的r的data里面就是exif信息了
// console.log(e)
}
})
},
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
在这里插入图片描述
源码:https://github.com/zhizhilong/wx-exif
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)