离子3:直接在`file:/// android_asset / www / assets / i18n`

时间:2018-10-22 14:54:20

标签: cordova ionic3 angular5

我正在尝试通过下载翻译文件并将其存储在应用程序目录中来直接更新翻译文件。 以下是我用于下载和替换文件的代码,

private downloadLanguageFile(url: string, lang: string) {
    const appDir = this.file.applicationDirectory;
    let promise = this.http.get(url, {responseType: 'blob'}).toPromise();
    promise.then((downloadedFile: any) => {
        this.file.writeFile(appDir, `${lang}.json`, downloadedFile, {replace: true})
            .then((data) => {
                console.log(data);
            }, (error) => {
                console.log("error writing file", error);
            })
    }, (error) => {
        console.log("Download language file failed", error);
    });

    return promise;
}

但不是将文件保存在该目录中,而是引发以下错误:

  

FileError {代码:1,消息:“ NOT_FOUND_ERR”}代码:1消息:

     

“ NOT_FOUND_ERR”

     

原始:对象

当我将文件目录更改为dataDirectory时,代码可以完美工作。 关于我在做什么错的任何建议? 预先感谢。

注意: 允许将文件和目录从applicationDirectory复制到任何其他目录,但是不允许相反的操作。

0 个答案:

没有答案