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 build android”错误