更新记录
1.0.0(2021-01-18)
init commit
平台兼容性
app
微信小程序
支付宝小程序
百度小程序
字节小程序
QQ小程序
快应用
3.0.7 app-vue
×
×
×
×
×
×
h5-Safari
Android Browser
微信浏览器(Android)
QQ浏览器(Android)
Chrome
IE
Edge
Firefox
pc-Safari
×
×
×
×
×
×
×
×
×
uni-app 日志文件写入与创建(实测可用)
主要实现功能,记录手机端的运行日志,并将内容写入到手机目录成 text 文件
手机存放目录/storage/emulated/0/Android/data/应用包名/documents/app-log/2021-01-18log.text
小米与华为手机目录为 Android/data/应用包名/documents/app-log/2021-01-18log.text
其他机型没测试
环境配置
uni h5 模块配置
1、5+功能模块
"h5" : {
"permissions":{
"File": {
"description": "文件系统"
}
}
}
js 文件引入
将 log.js 文件引入到项目 common 或公共方法目录下
引入base64.js 加密文件(也可在当前跟目录下直接下载)
使用方式
// 日志方法引入
import log from "@/common/log.js";
// 使用方式
log.writeLog("日志内容写入测试", false);
主要代码,详细代码请下载本目录后查看
/**
* 日志内容写入
* @param {Object} params 写入内容
* @param {Object} encryption 是否加密
*/
function writeLog(params, encryption) {
let text = JSON.stringify(params)
plus.io.requestFileSystem(plus.io.PUBLIC_DOCUMENTS, function(fs) {
// 可通过fs操作PUBLIC_DOCUMENTS文件系统
// 创建日志文件夹
fs.root.getDirectory("app-log", {
create: true,
exclusive: false
}, function(dir) {
// 创建或写入文件
console.log("Directory Entry Name: " + dir.fullPath + getLogFileName().fileName);
dir.getFile(getLogFileName().fileName, {
create: true
}, function(fileEntry) {
// 找到文件准备写入操作
fileEntry.file(function(file) {
// create a FileWriter to write to the file
fileEntry.createWriter(function(writer) {
// Write data to file.
writer.seek(file.size - 1)
// 换行插入日志文件
if (encryption) {
writer.write(getLogFileName().newLine + " " + Base64.encode(text));
} else {
writer.write(getLogFileName().newLine + text);
}
}, function(e) {
console.error("日志写入错误", error)
});
});
});
}, function(err) {
console.error("文件夹创建失败", err)
});
}, function(error) {
console.error("文件系统进入错误", error)
});
}
writeLog 方法传参 API 文档
参数名称
参数作用
参数类型
是否必填
params
写入内容
all
是
encryption
是否加密
boolean
否
参考资料
uni-app 官方文档 https://uniapp.dcloud.io/README
html5plus 官方文档 IO 文件系统接口文档 https://www.html5plus.org/doc/zh_cn/io.html