在应用启动时,它会检查某个文件是否存在,如果不存在,则会发出http
请求以API
格式获得json
。如果请求成功完成,那么它将创建一个json文件。
$cordova.writeFile()
登录成功处理程序,所以它必须有效(我不知道如何检查它是否确实成功)。
当我关闭应用并重新启动它然后再次检查但它总是在错误处理程序中doesn't exist
// On launch
$scope.checkFile('news.json');
$scope.checkFile = function(file){
$cordovaFile.checkFile(cordova.file.dataDirectory, file)
.then(function (success) {
console.log('Exists!');
}, function (error) {
console.log('Doesnt exist');
$scope.update();
});
}
//If it doesn't exist
$scope.update = function () {
// Get all news
NewsService.getAllNews().then(function (data) {
$scope.saveFile('news.json', data);
$scope.news = data;
}, function (err) {
console.log(err)
});
};
// Write file
$scope.saveFile = function (file, data) {
console.log(file) // logs news.json
console.log(data) // logs data
$cordovaFile.writeFile(cordova.file.dataDirectory, file, JSON.stringify(data), true)
.then(function (success) {
// success
console.log('Worked!');
}, function (error) {
// error
console.log('Didn't work');
});
};
修改
cordova.file.dataDirectory
导致:
file:///data/user/0/com.myname.appname/files/
这是正确的路径吗?
EDIT2: 我没有记录自己的错误,而是记录了变量错误。它说:
FileError {code: 5, message: "ENCODING_ERR"}