您的位置:首页 > 房产 > 家装 > 网站推广联盟_南宁云尚网络_上海优化公司排行榜_可以看任何网站的浏览器

网站推广联盟_南宁云尚网络_上海优化公司排行榜_可以看任何网站的浏览器

2025/4/29 7:26:09 来源:https://blog.csdn.net/Smile_ping/article/details/144216428  浏览:    关键词:网站推广联盟_南宁云尚网络_上海优化公司排行榜_可以看任何网站的浏览器
网站推广联盟_南宁云尚网络_上海优化公司排行榜_可以看任何网站的浏览器

文章目录

    • 请求本地文件系统对象,读取文件的数据内容
      • 读取.bin文件
      • file对象返回数据格式
      • 踩过的坑

请求本地文件系统对象,读取文件的数据内容


API文档
场景: 蓝牙设备升级,根据用户选择bin文件,读取文件数据内容;分包发送给蓝牙设备;


读取.bin文件

  • 通过 requestFileSystem 获取指定的文件
  • 应用私有资源目录,对应常量有4种:具体使用请查看文档
    • plus.io.PRIVATE_WWW
    • plus.io.PRIVATE_DOC
    • plus.io.PUBLIC_DOWNLOADS
    • plus.io.PUBLIC_DOWNLOADS
  • 分包发送数据:请查看
/*** @description 读取文件内容,根据实际情况处理数据;* @param {String} filePath 文件路径* @returns {Object} */
const getFileSystem = (filePath) => {filePath = filePath || '/static/B1.1.2.bin'; // TESTreturn new Promise((resolve, reject) => {plus.io.requestFileSystem(plus.io.PRIVATE_WWW, (fs) => {fs.root.getFile(filePath, {create: false}, (fileEntry) => {fileEntry.file((file) => {console.log('file:', file);// 创建读取文件对象 创建读取文件对象const fileReader = new plus.io.FileReader();// 以URL编码格式读取文件数据内容 读取文件的数据内容,并将数据内容进行URL编码fileReader.readAsDataURL(file);fileReader.onload = (evt) => {let strs = evt.target.result;// 将 Base64 字符串转成 ArrayBuffer 对象let arrayBuffer = uni.base64ToArrayBuffer(strs);// 返回数据resolve({size: file.size,arrayBuffer});}fileReader.onerror = (err) => {console.log('文件读取失败');reject(err);}})}, (error) => {console.log('读取文件报错:', error);})})})
}

file对象返回数据格式

*例:放在本地 /static/目录下.bin文件

{"size": 98036,"type": "application/macbinary","name": "1.0.44.bin","lastModifiedDate": "2024-12-25T08:39:07.022Z","fullPath": "/Users/xxx/Library/Developer/CoreSimulator/Devices/FBAB31F1xxx/data/Containers/Data/Application/F9314A28xxx/Documents/Pandora/apps/F9C07xxx/www/static/1.0.44.bin"}

踩过的坑

  • 读取本地文件:安卓、iOS设备均正常读取;
  • 读取_doc/uniapp_temp开头路径:安卓能正常,iOS设备 得到 size为 0 情况
    • 更换目录常量也不行,读取失败:{"code":1, "message":"文件没有发现"}
    • 解决:
      • 可以先把文件下载到本地,再通过本地路径去读取
      • requestFileSystem 修改为 resolveLocalFileSystemURL ,具体请查看下一篇文章;

版权声明:

本网仅为发布的内容提供存储空间,不对发表、转载的内容提供任何形式的保证。凡本网注明“来源:XXX网络”的作品,均转载自其它媒体,著作权归作者所有,商业转载请联系作者获得授权,非商业转载请注明出处。

我们尊重并感谢每一位作者,均已注明文章来源和作者。如因作品内容、版权或其它问题,请及时与我们联系,联系邮箱:809451989@qq.com,投稿邮箱:809451989@qq.com