核心NJS
/**
* 向本地文件根目录路径下写入文件
* @param {Object} fileName 文件名
* @param {Object} extension 文件扩展名
* @param {Object} content 文件内容
* @return {Promise} 返回包含文件路径的promise
*/
writFile(fileName, extension, content) {
const that = this
const fileFullName = `${fileName}.${extension}`
return new Promise((resolve, reject) => {
plus.io.requestFileSystem(plus.io.PRIVATE_DOC, function(fobject) {
// 判断文件是否存在,存在则删除
that.existFile(fobject, fileFullName)
// 写
fobject.root.getFile(fileFullName, {
create: true
}, function(fileEntry) {
fileEntry.file(function(file) {
resolve(file.fullPath)
// 创建文件写入对象,并开始写入数据
fileEntry.createWriter(function(writer) {
// 设置文件大小
writer.seek(file.size - 1)
// 写入文件内容
writer.write(content)
}, function(err) {
reject(err)
})
})
})
})
})
}
/**
* 根据文件系统根目录判断文件是否存在
* @param {PluseIoFileSystem} fobject 文件系统对象
* @param {String} fileFullName 文件全名
*/
existFile(fobject, fileFullName) {
const directoryReader = fobject.root.createReader()
directoryReader.readEntries(function(entries) {
console.log('当前文件列表', entries)
entries.forEach(item => {
// console.log(item.name);
if(item.name === fileFullName) {
item.remove()
}
})
})
}
根据writFile方法返回的文件路径 直接丢给web-view组件
注意html中script 标签一定要有结束符 并且结束符的斜杆需要转义
目前只能解决app 端此类问题,最好的方法还是让后端保存html文件,然后传个url 过来