热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

安装新应用后,科尔多瓦本地存储不会清除

我目前正在使用Vue.jsCordova应用,并且我正在使用VueX-persist将商店保存在本地

我目前正在使用Vue.js / Cordova应用,并且我正在使用VueX-persist将商店保存在本地存储中。

在商店内,我跟踪在应用程序登录页面上显示的当前应用程序版本。我的问题似乎在iOS和Android上有所不同,但都存在相同的问题,即当我重新安装应用程序时无法清除存储空间。

例如,我安装了版本为1.0.7的应用程序,然后将版本更改为1.0.8,并添加了一些硬编码文本,因此我知道这是在安装更新的应用程序。

Store.js:

state: {
appVersion: '1.0.8',}

Login.vue:

Should be version - 1.0.8 / Store Version is - {{$store.getters.appVersion}}


新应用程序安装了硬编码文本,但版本仍显示1.0.7,这在iOS和Android上发生。

当我卸载该应用程序并尝试重新安装它时,两者之间就有所不同。
在iOS上,所有内容都会正确更新并且可以正常运行。与android一样,即使卸载该应用程序也不会对其进行更新。我必须手动清除本地存储并刷新应用程序才能进行更改。但是,更奇怪的是,一旦我删除了该应用程序并再次尝试'cordova run android',它又回到了1.0.0,这是我制作的第一个版本。

我尝试删除平台并重新添加它们,然后重新运行以下

npm run build
cordova run ios
cordova run android

更新:

我再次将版本更新为1.0.10,然后运行此代码以检查存储中的版本以及本地存储中保存的版本,但是两者都报告了1.0.9(旧存储的版本)

// Function to migrate store data to keep it up dated after app updates
const migrateStoreData = function () {
const previousStoreData = JSON.parse(localStorage.getItem('appStore'));
console.log('Previous: ',previousStoreData.appVersion);
console.log('Current: ',store.getters.appVersion);
};
migrateStoreData();


这是默认行为,我认为这样可以。
否则,用户必须在每次更新应用后登录。

但是,当然,在某些情况下,您必须迁移存储的数据。

这就是为什么我在main.js中运行一个迁移,该迁移仅比较两个版本(currentAppVersion和storedAppVersion)

如果要从localStorage删除所有内容,则必须转到
Settings->Apps搜索您的App,然后在存储区上滑动一下。
现在,您有2个按钮可以删除所有内容。

希望对您有帮助

,

我设法对Vuex Persist使用了reducer以从商店中排除'appVersion'值。

const vuexPersist = new VuexPersist({
key: 'appStore',storage: localStorage,reducer: state => // exclude certain values from being persisted
Object.keys(state).reduce((acc,curr) => {
if (!['appVersion'].includes(curr)) acc[curr] = state[curr];
return acc;
},{}),});

推荐阅读
  • 本文介绍了闭包的定义和运转机制,重点解释了闭包如何能够接触外部函数的作用域中的变量。通过词法作用域的查找规则,闭包可以访问外部函数的作用域。同时还提到了闭包的作用和影响。 ... [详细]
  • 开发笔记:加密&json&StringIO模块&BytesIO模块
    篇首语:本文由编程笔记#小编为大家整理,主要介绍了加密&json&StringIO模块&BytesIO模块相关的知识,希望对你有一定的参考价值。一、加密加密 ... [详细]
  • 本文介绍了在wepy中运用小顺序页面受权的计划,包含了用户点击作废后的从新受权计划。 ... [详细]
  • 本文记录了在vue cli 3.x中移除console的一些采坑经验,通过使用uglifyjs-webpack-plugin插件,在vue.config.js中进行相关配置,包括设置minimizer、UglifyJsPlugin和compress等参数,最终成功移除了console。同时,还包括了一些可能出现的报错情况和解决方法。 ... [详细]
  • vue使用
    关键词: ... [详细]
  • HDU 2372 El Dorado(DP)的最长上升子序列长度求解方法
    本文介绍了解决HDU 2372 El Dorado问题的一种动态规划方法,通过循环k的方式求解最长上升子序列的长度。具体实现过程包括初始化dp数组、读取数列、计算最长上升子序列长度等步骤。 ... [详细]
  • 本文介绍了Hyperledger Fabric外部链码构建与运行的相关知识,包括在Hyperledger Fabric 2.0版本之前链码构建和运行的困难性,外部构建模式的实现原理以及外部构建和运行API的使用方法。通过本文的介绍,读者可以了解到如何利用外部构建和运行的方式来实现链码的构建和运行,并且不再受限于特定的语言和部署环境。 ... [详细]
  • 本文总结了在开发中使用gulp时的一些技巧,包括如何使用gulp.dest自动创建目录、如何使用gulp.src复制具名路径的文件以及保留文件夹路径的方法等。同时介绍了使用base选项和通配符来保留文件夹路径的技巧,并提到了解决带文件夹的复制问题的方法,即使用gulp-flatten插件。 ... [详细]
  • 本文讨论了如何在dotnet桌面(Windows)应用程序中添加图标。作者提到可以使用dotnet命令行工具与resource.rc文件一起使用来为标准.NET核心应用程序添加图标。作者还介绍了在创建控制台应用程序时如何编辑projeto1.csproj文件来添加图标。 ... [详细]
  • 本文讨论了在openwrt-17.01版本中,mt7628设备上初始化启动时eth0的mac地址总是随机生成的问题。每次随机生成的eth0的mac地址都会写到/sys/class/net/eth0/address目录下,而openwrt-17.01原版的SDK会根据随机生成的eth0的mac地址再生成eth0.1、eth0.2等,生成后的mac地址会保存在/etc/config/network下。 ... [详细]
  • Spring常用注解(绝对经典),全靠这份Java知识点PDF大全
    本文介绍了Spring常用注解和注入bean的注解,包括@Bean、@Autowired、@Inject等,同时提供了一个Java知识点PDF大全的资源链接。其中详细介绍了ColorFactoryBean的使用,以及@Autowired和@Inject的区别和用法。此外,还提到了@Required属性的配置和使用。 ... [详细]
  • 如何查询zone下的表的信息
    本文介绍了如何通过TcaplusDB知识库查询zone下的表的信息。包括请求地址、GET请求参数说明、返回参数说明等内容。通过curl方法发起请求,并提供了请求示例。 ... [详细]
  • 本文介绍了在Mac上安装Xamarin并使用Windows上的VS开发iOS app的方法,包括所需的安装环境和软件,以及使用Xamarin.iOS进行开发的步骤。通过这种方法,即使没有Mac或者安装苹果系统,程序员们也能轻松开发iOS app。 ... [详细]
  • uniapp开发H5解决跨域问题的两种代理方法
    本文介绍了uniapp开发H5解决跨域问题的两种代理方法,分别是在manifest.json文件和vue.config.js文件中设置代理。通过设置代理根域名和配置路径别名,可以实现H5页面的跨域访问。同时还介绍了如何开启内网穿透,让外网的人可以访问到本地调试的H5页面。 ... [详细]
  • python限制递归次数(python最大公约数递归)
    本文目录一览:1、python为什么要进行递归限制 ... [详细]
author-avatar
小妞丁林林
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有