Ionic/Cordova SqLite 并不总是在来自 Play 商店的应用更新之间持续存在

Posted

技术标签:

【中文标题】Ionic/Cordova SqLite 并不总是在来自 Play 商店的应用更新之间持续存在【英文标题】:Ionic/Cordova SqLite not always persisted between app updates from Play Store 【发布时间】:2018-08-25 21:11:15 【问题描述】:

我们有一个用 Ionic 2/Cordova 编写的 android 应用,它在设备上使用 SQLite 数据库。

我们已经在 3 种不同的 Android 设备上进行了测试:

7.1.1 上的 Xperia z5c 7.1.2 上的 Nexus 5x 三星 Galaxy S7

结果:

有时当我们更新应用程序时,数据库似乎是空白的 有时它会保留其数据。

这只发生在 Nexus 和三星上

关于 SQLite 或 Cordova 应用程序的更新机制是否存在已知错误?

谢谢。

【问题讨论】:

【参考方案1】:

这可能不是你的问题的原因,但我在一些较新的三星设备上遇到了类似的问题,结果是Android autobackup 是罪魁祸首。

由于它在面向 Android 6.0(API 级别 23)或更高版本的应用上默认启用,因此它会从自动备份同步数据库文件,因此会覆盖设备上新安装或更新的版本。

还有一些关于它的更多信息here,但简而言之,在AndroidManifest.xml 中设置android:allowBackup="false" 为我修复了它。

【讨论】:

嗯,这很有趣,因为我们确实检查了设备上是否禁用了自动备份。但是从您所说的来看,无论系统切换如何,都会发生这种情况?干杯。 如果您明确关闭备份,我不这么认为 - 根据the docs:Backups occur automatically when all of the following conditions are met: The user has enabled backup on the device in Settings > Backup & Reset ...

以上是关于Ionic/Cordova SqLite 并不总是在来自 Play 商店的应用更新之间持续存在的主要内容,如果未能解决你的问题,请参考以下文章

使用 IONIC 3 + CORDOVA 在 SQLite 中创建数据库

ionic/cordova即时通讯解决方案(上)

“Ionic cordova build android”错误

Ionic Cordova 对新的 Android Bundle 构建感到困惑

ionic 和cordova的区别是啥

如何将 Ionic Cordova 3 迁移到 Ionic Cordova 5?