【发布时间】:2019-12-16 00:33:27
【问题描述】:
我非常清楚那里有一些帖子与不同的插件有类似的东西,但我无法找到一个告诉我我是否正在引导我的 Cordova 应用程序正确地调整角度以及如何做我说,其次,如果可以的话,我想将 JSON 字符串或对象保存到用户手机上
/* main.ts */
import { enableProdMode } from '@angular/core';
import { platformBrowserDynamic } from '@angular/platform-browser-dynamic';
import { AppModule } from './app/app.module';
import { environment } from './environments/environment';
if (environment.production) {
enableProdMode();
}
/* Bootstrap App Module */
const onDeviceReady = () => {
platformBrowserDynamic().bootstrapModule(AppModule);
};
document.addEventListener('deviceready', onDeviceReady, false);
platformBrowserDynamic().bootstrapModule(AppModule)
.catch(err => console.error(err));
/* Favourite Service Typescript file */
import { Injectable } from '@angular/core';
import {HttpClient, HttpHeaders} from '@angular/common/http';
import { NotificationService } from './notification.service';
import { EnvService } from './env.service';
import { catchError, tap } from 'rxjs/operators';
declare var window: any;
@Injectable({
providedIn: 'root'
})
export class FaveService {
createFav() {
document.addEventListener('deviceready', function() {
window.requestFileSystem(LocalFileSystem.PERSISTENT, 0, success, error);
}, false);
window.requestFileSystem(LocalFileSystem.PERSISTENT, 0, function (fs) {
console.log('file system open: ' + fs.name);
fs.root.getFile('newPersistentFile.txt', { create: true, exclusive: false }, function (fileEntry) {
console.log('fileEntry is file?' + fileEntry.isFile.toString());
// fileEntry.name == 'someFile.txt'
// fileEntry.fullPath == '/someFile.txt'
writeFile(fileEntry, null);
}, onErrorCreateFile);
}, onErrorLoadFs);
}
}
上面是我用来尝试与 Cordova 文件系统 API 交互的代码,但我遇到了这些错误。
现在我知道如果我执行declare const requestFileSystem,错误将会消失,但是当我构建应用程序并尝试创建文件时,它只会在手机文件系统的数据文件夹中创建目录,而不是文件。我还尝试授予应用程序对存储的读/写访问权限,但同样没有乐趣。所以我的另一个问题是如何摆脱这些错误,或者我是否通过声明它们并使其在 android 7.0 上运行来做正确的事情,非常感谢您提前
【问题讨论】:
-
你安装了cordova文件插件吗?
-
是的,我按照这些说明进行操作 cordova.apache.org/docs/en/latest/reference/cordova-plugin-file 我的设备插件正在工作,所以我在代码中做错了,它自己只是想知道是否有人遇到过这个问题
-
这是完整的代码吗?
-
是的,文件保存功能的所有代码当我将它们声明为 var 时错误消失了,但文件仍然没有保存。我将尝试在一个干净的应用程序中重写它,看看它是否可以这样工作。
-
我今天也一直在和这个作斗争。而不是使用
LocalFileSystem.PERSISTENT使用window.PERSISTENT属性。同样,有一个window.TEMPORARY属性用于临时存储。如果 tsc 或 tslint 抱怨该属性不存在,则将其转换为 Cordova 的 Window 界面,即:import { Window as CordovaWindow } from 'cordova-plugin-file/types'(或您自己的适当定义),然后使用(window as unknown as CordovaWindow).PERSISTENT。
标签: angular cordova cordova-plugin-file