可以在sd卡(Android)上读取cordova-sqlite-ext数据库吗?

时间:2018-01-18 09:27:10

标签: html5 sqlite cordova web-applications phonegap

我已经搜索了一下,但我无法确定我是否可以使用cordova-sqlite-ext插件在我的SD卡(手机设备存储)上读取sqlite文件。< / p>

https://www.npmjs.com/package/cordova-sqlite-storage上说:

  

litehelpers中提供以下功能/   cordova-sqlite-ext:...    - 预先填充的数据库(Android / iOS / macOS / Windows)

所以我需要的是webapp之外的sqlite数据库和可以从这个数据库中读取的phonegap插件。那么,上面的插件可以做到这一点是否正确?

或者还有其他方法可以完成这项任务吗?

1 个答案:

答案 0 :(得分:0)

cordova-sqlite-storage将其数据库存储在应用程序的专用存储目录中。 这只能由您的应用访问,并且位于内部数据分区上。 例如,如果您的应用包ID为foo.bar.com且您的数据库为name: store.db,那么它将位于/data/data/foo.bar.com/databases/store.db。 位置data/data/foo.bar.com/cordova.file.applicationStorageDirectory引用为cordova-plugin-file

您可以使用cordova-sqlite-evcore-extbuild-freecordova-sqlite-storage变体:

  

自定义Android数据库位置(支持外部存储目录)

&#34;外部存储目录&#34;在SD卡上#34;通常是通过挂载点/sdcard//storate/emulated/0/访问的内部内存分区。 从Android 4.4开始,应用程序只能在&#34;应用程序沙箱中使用写入权限。 SD卡上的目录,例如/sdcard/Android/data/foo.bar.com/cordova.file.externalApplicationStorageDirectory)。

SD卡的所有其他区域都是只读的(例如/sdcard/ - cordova.file.externalRootDirectory的根)所以当你可以从这里读取数据库时,要写入它你就可以了需要将其复制到应用程序的私有或外部存储目录。例如,您可以使用cordova-plugin-file执行此操作。