- ios,chooseMedia后的原图,如何能获取到EXIF信息(拍摄时间)?
希望能在chooseMedia后,获取到图片的拍摄时间, mac开发调试的时候是可以获取的,但是iOS上就不行了。 是因为mac上调用的文件管理器,iOS用的苹果的控件,微信这边没有处理EXIF? wx.chooseMedia({ mediaType:["image"], sourceType:["album"], sizeType:["original"], success:onImageChoose }) //调用chooseMedia部分, 拿到image的tempPath后,用readFile读出,然后尝试获取exif parseImage(data){ // data为ArrayBuffer类型的JPG文件的二进制数据 let arr=new Uint8Array(data); let base=0; // TIFF数据头开始地址 let timeTagIndex=0; // EXIF时间信息标记开始地址 for(let i=0;i<arr.length;i++){ // 获取TIFF数据头地址 if(arr[i]==69 && arr[i+1]==120 && arr[i+2]==105 && arr[i+3]==102 && arr[i+4]==0 && arr[i+5]==0){ base=i+6; } // 获取时间标签地址 if(arr[i]==0x90 && arr[i+1]==0x03){ timeTagIndex=i; break; // 因为这个if的条件比较容易重复,但是我们要的是第一个,所以这里就可以直接退出了 } } let bias=0; // 偏移地址 for(let i=0;i<=3;i++){ bias=bias<<8; bias+=arr[timeTagIndex+8+i]; } let datetime_addr_index=base+bias; // 实际地址 let datetimestr=""; // 日期字符串 for(let i=datetime_addr_index;i<=datetime_addr_index+19;i++){ datetimestr+=String.fromCharCode(arr[i]); } console.log(datetimestr) return datetimestr.replaceAll(':','/').split(" ")[0] } mac上能够正常获取到exif的拍摄日期, ios就没有了。
2022-07-29 - 微信开发者工具代码提示单词拼写错误
[图片] wx.hideTabBar的animation属性代码提示拼写错误
2018-07-17 - 小程序捕获未处理的Promise错误(Uncaught in promise)
很多地方会用到Promise,但是有的地方调用会没有写catch方法,现在想要监听这些没处理的rejected promise 然后上报,webkit是有unhandledrejection事件,不知道在小程序中如何监听呢。
2018-06-01