plus.io.requestFileSystem(plus.io.PRIVATE_WWW, function (fs) {
fs.root.getFile(
"/static/OCE_HMET_1.2.1_CODE.bin",
{
create: false,
},
function (fileEntry) {
fileEntry.file(function (file) {
var reader = new plus.io.FileReader();
reader.readAsDataURL(file); // 以URL格式读取文件
reader.onload = function (evt) {
let strs = "";
console.log("文件内容", evt);
if (uni.getSystemInfoSync().platform == "ios") {
// 苹果设备前缀为34个字符需要提前去除,安卓为37个
strs = evt.target.result.substring(34).replace("\r\n", "");
} else {
strs = evt.target.result.substring(37).replace("\r\n", "");
}
let arrayBuffer = uni.base64ToArrayBuffer(strs); // 转换为arrayBuffer格式
// 此处无法调用this指向,使用原生uni方法才可行
let newArrBuff = arrayBuffer.slice(
(item.page - 1) 1025,
item.page 1025
);
};
});
}
);
});
- 发布:2023-03-10 11:46
- 更新:2023-03-16 22:31
- 阅读:1099
产品分类: HbuilderX
PC开发环境操作系统: Windows
PC开发环境操作系统版本号: Windows 11 家庭中文版 21H2
HBuilderX类型: 正式
HBuilderX版本号: 3.7.3
手机系统: Android
手机系统版本号: Android 11
手机厂商: 华为
手机机型: 荣耀10,harmonyOS 2.0.0系统,是鸿蒙不是安卓系统,手机OS系统那栏我乱选的安卓12
页面类型: vue
vue版本: vue2
打包方式: 云端
项目创建方式: HBuilderX
示例代码:
操作步骤:
plus.io方法读取了二进制文件,
再使用redaAsDataURL方法读取为base64格式
便可以发现其中二进制的内容,新版本识别了换行符
plus.io方法读取了二进制文件,
再使用redaAsDataURL方法读取为base64格式
便可以发现其中二进制的内容,新版本识别了换行符
预期结果:
新版本打包SDK不再识别换行符\r\n
新版本打包SDK不再识别换行符\r\n
实际结果:
新版本识别了换行符
新版本识别了换行符
bug描述:
新版本3.7.3版本的HbuilderX编译器使用了最新版本的打包SDK,
读取二进制文件时,使用readAsDataURL方法转为base64格式,
其中会导致识别了换行符 "\r\n"
而旧版本的打包SDK不会出现此类情况,导致我们APP出现bug