我现在正致力于一个致力于本地化的混合应用程序,逻辑是用户将有3个选项来选择语言,我在bluemix上有一个处理cloudant-nosql db的node.js服务器得到点我比较我的本地json文件“rev”值与服务器上的另一个如果它们不同然后我必须用更新的一个覆盖本地文件,我有这个结果但是我不能把这个数据写到本地文件,我现在正在使用cordova和ionic 2,
public GetRevFromNode(SelectedLanguage,JsonDataLocal)
{
JsonDataLocal.subscribe(val=>{ this.LocJson=val; })
this.http.get('https://*********/retriev?ID=\"'+SelectedLanguage+"\"").subscribe( result=>
{
if(this.LocJson['_rev']==result.json().value)
{
console.log("The Local Json is Updated to the latest");
return ;
}
{
console.log("Updating Json File for "+SelectedLanguage+".json .......");
var ob=this.file.readAsText(this.file.applicationDirectory+'www/assets/i18n',"ar.json");
ob.then(function(val){
console.log("ar JSON = "+val);
});
this.file.createFile('file:///android_asset/www',"ess.json",true).catch(val=>{
console.log("Can't create because = "+JSON.stringify(val));
});
this.file.writeFile('file:///android_asset/www/',"index.html","\"value\":\"Please\"",{replace:true , append:false} ).catch(val=>{
console.log("Can't write because ="+JSON.stringify(val));
console.log("Updating Done ...")
}
} );
}
试图使用this.file.appDirectory错误也尝试隐式地像这里一样
错误是
未承诺的承诺[object Object]
使用stringify {Code:1000}
但是我可以正常阅读并检查文件是否正常存在,问题在于创建和编写
答案 0 :(得分:1)
请参阅https://github.com/apache/cordova-plugin-file#android-file-system-layout
问题是我无法在applicationDirectory
路径中写入此路径只读。