起步软件技术论坛
搜索
 找回密码
 注册

QQ登录

只需一步,快速开始

查看: 2020|回复: 4

[结贴] app更新后sqlite中数据无法更新

[复制链接]

29

主题

120

帖子

483

积分

中级会员

Rank: 3Rank: 3

积分
483
QQ
发表于 2017-10-31 19:15:10 | 显示全部楼层 |阅读模式
在app中使用sqlite 存储本地数据,但是app版本更新,同时sqlite中的数据发生新增时,应用根据版本更新提示进行更新,发现应用的其他修改都能更新成功,唯独就是sqlite里面的数据不会变。sqlite是使用db的方式加载的
  1. this.database = window.sqlitePlugin.openDatabase({name : "MYAPP_DB.db",createFromLocation:1});
复制代码

测来测去也找不到问题所在,最后只得卸掉原有的app,然后重新下载安装,这时sqlite数据就是最新的了,但是这样就麻烦了,不可能每次更新了sqlite里的数据,都让用户卸掉app重新下载吧?
发表于 2017-11-1 10:07:48 | 显示全部楼层
可以类似引导页的做法,只在第一次启动 新版本的 APP时显示!
你也可以只在第一次启动APP 的时候,使用sql语句清空数据库!!

不过老数据本来就应该存在才对的!为什么要清除呢??我觉得数据留在才更满足用户要求

你可以看下引导页的代码
http://docs.wex5.com/wex5-app-question-list-2002/
就是通过 
localStorage.setItem(x5Version + ‘introPage’, ‘false’);
和  localStorage.getItem 方法  判断是否第一次启动新版本APP的!
qq:1912779713
WeX5教程--WeX5下载
回复 支持 反对

使用道具 举报

29

主题

120

帖子

483

积分

中级会员

Rank: 3Rank: 3

积分
483
QQ
 楼主| 发表于 2017-11-1 11:09:59 | 显示全部楼层
liangyongfei 发表于 2017-11-1 10:07
可以类似引导页的做法,只在第一次启动 新版本的 APP时显示!
你也可以只在第一次启动APP 的时候 ...

你的意思是每次更新了app都重新清空sqlite里的数据?

然而我疑惑的是:
在测试的时候发现每次重新打开app,控制台都有sqlite加载的信息,这证明每次打开app都会重新读取sqlite里的数据。

如此推断,如果更新app成功后同时db也更新了,那么再次读取db 中的数据,这时应该和服务端的db数据相同才对呀。

所有我怀疑是不是在app更新时没有把服务端的 db更新下来,
所以才会导致app更新后db数据与服务端db数据不一致?
回复 支持 反对

使用道具 举报

发表于 2017-11-1 11:54:20 | 显示全部楼层
dex 发表于 2017-11-1 11:09
你的意思是每次更新了app都重新清空sqlite里的数据?

然而我疑惑的是:

sqlite 中数据本来就是缓存的!不会自动清空的!如果你想重新更新sqlite 中的数据! 也需要判断APP更新后第一次启动时,使用代码实现这个逻辑的!

qq:1912779713
WeX5教程--WeX5下载
回复 支持 反对

使用道具 举报

29

主题

120

帖子

483

积分

中级会员

Rank: 3Rank: 3

积分
483
QQ
 楼主| 发表于 2017-11-1 15:04:28 | 显示全部楼层
liangyongfei 发表于 2017-11-1 11:54
sqlite 中数据本来就是缓存的!不会自动清空的!如果你想重新更新sqlite 中的数据! 也需要判断APP更 ...

感谢帮助,根据你的提示判断在app更新后第一次启动时使用
  1. window.sqlitePlugin.deleteDatabase({name: "my.db", location: 1}, successcb, errorcb);
复制代码

先清空sqlite再openDatabase
完美解决
请结帖,谢谢。
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

本版积分规则

小黑屋|手机版|X3技术论坛|Justep Inc.    

GMT+8, 2024-11-23 12:47 , Processed in 0.059171 second(s), 23 queries .

Powered by Discuz! X3.4

© 2001-2013 Comsenz Inc.

快速回复 返回顶部 返回列表