<template>
<view>
<view class="p-2">
<view class="bg-primary p-2 rounded flex align-center justify-center" style="color: #fff;" hover-class="bg-hover-primary" @click="dataset">写入{{count}} s</view>
</view>
<view class="p-2">
<view class="bg-primary p-2 rounded flex align-center justify-center" style="color: #fff;" hover-class="bg-hover-primary" @click="read">读取</view>
</view>
<view class="p-2">
<view class="bg-primary p-2 rounded flex align-center justify-center" style="color: #fff;" hover-class="bg-hover-primary" @click="deletes">删除</view>
</view>
</view>
</template>
<script>
import { mapState } from 'vuex'
export default {
data() {
return {
count: '',
timer: null,
resultdata:[]
}
},
computed: {
...mapState({
token:state=>{
return state.user ? state.user.token : null
},
user:state=>{
return state.user ? state.user : null
}
}),
},
methods: {
read(){
//console.log("读取")
plus.io.requestFileSystem(plus.io.PUBLIC_DOCUMENTS, (fs)=> {
// fs.root是根目录操作对象DirectoryEntry
let a = fs.root.toURL() //通过此方法我们可获取存储在app私用环境下的相对跟路径。
console.log(a + '/box/' + 'test.json')
fs.root.getFile(a + '/box/' + 'test.json', {
create: false
}, (fileEntry)=> {
// 文件在手机中的路径
// console.log(fileEntry.fullPath)
fileEntry.file((file)=> {
var fileReader = new plus.io.FileReader();
fileReader.readAsText(file, 'utf-8');
fileReader.onloadend =(evt)=> {
var news = [];
var result = evt.target.result;
console.log(result)
if (result != ""){
this.resultdata=JSON.parse(result)
}
}
});
});
})
},
wetir(){
//console.log("写入")
plus.io.requestFileSystem(
plus.io.PUBLIC_DOCUMENTS, // 文件系统中的根目录
fs => {
let a = fs.root.toURL() //通过此方法我们可获取存储在app私用环境下的相对跟路径。
// 创建或打开文件, fs.root是根目录操作对象,直接fs表示当前操作对象
fs.root.getFile(a + '/box/' + 'test.json', {
create: true // 文件不存在则创建
}, fileEntry => {
// 文件在手机中的路径
// console.log(fileEntry.fullPath)
fileEntry.createWriter(writer => {
// 写入文件成功完成的回调函数
writer.onwrite = e => {
console.log("写入数据成功");
};
//console.log(this.resultdata)
// 写入数据
writer.write(JSON.stringify(this.resultdata));
uni.hideLoading()
})
}, e => {
console.log("getFile failed: " + e.message);
});
},
e => {
console.log(e.message);
}
);
},
deletes(){
//console.log("删除文件")
plus.io.requestFileSystem(plus.io.PUBLIC_DOCUMENTS, (fs)=> {
// fs.root是根目录操作对象DirectoryEntry
let a = fs.root.toURL();
//删除目录不能指向文件名 只能指向文件夹
console.log(a+'/box/')
plus.io.resolveLocalFileSystemURL(a+'/box/' ,(entry)=> {
//读取这个目录对象
var directoryReader = entry.createReader();
//读取这个目录下的所有文件
directoryReader.readEntries((entries)=> {
console.log(entries.length)
//如果有才操作
console.log(entries, 'entries')
if (entries.length > 0) {
//删除目录将会删除其下的所有文件及子目录 不能删除根目录,如果操作删除根目录
//将会删除目录下的文件及子目录,不会删除根目录自身。 删除目录成功通过succesCB
//回调返回,失败则通过errorCB返回。
entry.removeRecursively((entry)=> {
console.log('删除成功回调')
//删除成功回调
this.resultdata=[]
}, (e) =>{
//错误信息
console.log(e.message + ' ?!')
})
}
})
})
})
},
getCode(){
const TIME_COUNT = 10; //限定时间
if (!this.timer) {
this.count = TIME_COUNT;
this.timer = setInterval(() => {
if (this.count > 0 && this.count <= TIME_COUNT) {
this.count--; //全局的数据改变 倒计时
} else {
clearInterval(this.timer);
this.timer = null; //清除定时器
//需要执行的代码
return this.$H.get(`/url`,{
token:true
}).then(res=>{
this.resultdata=res
console.log(res)
this.wetir()
}).catch(err=>{
uni.hideLoading()
})
}
}, 1000)
}
} ,
dataset(){
//避免用户重复点击
this.getCode()
uni.showLoading({
title: '同步中...'
});
},
}
}
</script>