- APP中大多数据都是以缓存的形式存入本地,而这些数据在应用设置界面,清除缓存或者清除数据后都会消失。如果需要在清除数据或者缓存后还要保留某些内容,则需要换一种方式储存数据。比如,将数据存入本地文件。
- 可利用H5plus的native,引入java类进行处理。
需要注意到是,安卓6以上的环境,uniapp应用需要设置权限。如果设置了还不能存取文件,则可以检查一下app的应用权限,是否开启了储存权限 - 读取文件
function readJsonByFile(fileNamePath) {
const File = plus.android.importClass('java.io.File')
const BufferedReader = plus.android.importClass('java.io.BufferedReader')
const FileReader = plus.android.importClass('java.io.FileReader')
const FileWriter = plus.android.importClass('java.io.FileWriter')
const readFile = fileName => {
const readFr = new File(fileName)
try {
const reader = new BufferedReader(new FileReader(readFr))
let txt
let retxt = ''
let flag = true
while (flag) {
txt = reader.readLine()
if (txt == null) {
flag = false
break
}
retxt = retxt + txt
}
return retxt
} catch (e) {
console.log(e)
return ''
}
}
const json = readFile(fileNamePath)
return json
}
function writeJsonToFile(json, fileNamePath) {
const File = plus.android.importClass('java.io.File')
const BufferedReader = plus.android.importClass('java.io.BufferedReader')
const FileReader = plus.android.importClass('java.io.FileReader')
const FileWriter = plus.android.importClass('java.io.FileWriter')
const writeFile = (fileName, res) => {
try {
const n = fileName.lastIndexOf('/')
if (n !== -1) {
const fileDirs = fileName.substring(0, n)
console.log(fileDirs)
const directory = new File(fileDirs)
if (!directory.exists()) {
const a = directory.mkdirs()
console.log(a)
}
}
const file = new File(fileName)
if (!file.exists()) {
file.createNewFile()
}
const fos = new FileWriter(fileName, false)
fos.write(res)
fos.close()
return true
} catch (e) {
console.log(e)
return false
}
}
writeFile(fileNamePath, json)
return true
}
文章来源