Ionic - 在 android 的不同目录中创建 SQLite 数据库
Posted
技术标签:
【中文标题】Ionic - 在 android 的不同目录中创建 SQLite 数据库【英文标题】:Ionic - Create SQLite database in different directory in android 【发布时间】:2018-12-24 17:29:23 【问题描述】:我坚持在与默认目录不同的目录中创建 SQLite 数据库。为了描述我的问题,我正在使用:
cordova-sqlite-storage sqlite 插件和 cordova-file-plugin 用于文件管理。
如果有帮助,我正在使用 Ionic3 和 Angular5。
我的代码如下所示:
import File from '@ionic-native/file';
import SQLite, SQLiteObject from '@ionic-native/sqlite';
constructor(private sqlite: SQLite, private file: File)
createDB()
this.sqlite.create(
name: "maindata.db",
location: this.file.externalDataDirectory //<---what do I put here?
).then((sqliteObj: SQLiteObject) =>
//success
, error =>
console.log(error);
//error
);
上面的代码输出:
错误:无法确定有效的 ios 数据库位置 在 newSQLError 处调用 openDatabase
这是我不明白的,我没有添加ios平台,我正在为android平台使用和构建它。为什么它说这不是有效的 iOS 数据库位置。 SQLiteDatabaseConfig 的其他参数有:location、iosDatabaseLocation、createFromLocation 和 key。
我尝试过的其他东西:
this.file.applicationDirectory
this.file.externalApplicationDirectory
"/sdcard/"
"/sdcard"
它们都不起作用,只有“默认”起作用。如何在默认以外的自定义目录中创建我的 sqlite db 文件?
【问题讨论】:
嗨!我遇到了和你一样的问题,我想知道你是否最终找到了解决方案。 【参考方案1】:如果是 ios,则没有外部目录。但是你试图访问外部目录。所以它给出了错误。 您必须将数据存储到数据目录或文档目录中。
使用this.file.documentsDirectory
而不是this.file.externalDataDirectory
,否则您必须使用条件。
if(platform(ios))
this.file.documentsDirectory
else if(platform(android))`enter code here`
this.file.externalDataDirectory
【讨论】:
以上是关于Ionic - 在 android 的不同目录中创建 SQLite 数据库的主要内容,如果未能解决你的问题,请参考以下文章
ios ui 与 android 和浏览器 ionic 不同
从 Android 意图打开 Ionic (Capacitor) 应用程序中的特定页面
Ionic 2 Native Audio Android上没有声音
vs2015 ionic cordova ios模拟器中没有图标