更新记录

1.0.0(2021-01-18)

init commit


平台兼容性

Vue2 Vue3
×
App 快应用 微信小程序 支付宝小程序 百度小程序 字节小程序 QQ小程序
HBuilderX 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

隐私、权限声明

1. 本插件需要申请的系统权限列表:

"h5" : { "permissions":{ "File": { "description": "文件系统" } } }

2. 本插件采集的数据、发送的服务器地址、以及数据用途说明:

插件不采集任何数据

3. 本插件是否包含广告,如包含需详细说明广告表达方式、展示频率:

许可协议

MIT协议

使用中有什么不明白的地方,就向插件作者提问吧~ 我要提问