Cordova Android应用卸载后window.localStorage数据残留问题咨询
卸载Cordova应用后localStorage数据残留:原因与解决方案
这绝对是可能的,而且大概率不是页面缓存的锅——我在Cordova 8搭配Android平台7.0.0的环境下,亲测碰到过一模一样的问题,多台设备复现率还挺高。
核心原因:Android系统的自动备份机制
Cordova Android 7.0.0默认使用Android系统自带的WebView,而Android 6.0(API 23)及以上版本默认开启了Auto Backup for Apps功能。WebView的window.localStorage数据会被系统纳入应用备份范围:
- 卸载应用时,系统会悄悄保留这份备份数据
- 当你重新安装同签名的应用时,系统会自动恢复备份,导致之前的localStorage数据“死而复生”
怎么快速验证这个问题?
可以做两个简单测试:
- 卸载应用后,去设备的设置里找到「备份与恢复」(不同品牌路径可能不同,比如小米是「设置>我的设备>备份与恢复」),找到对应应用的备份记录并删除,再重装应用,数据应该就不会残留了
- 找一台从未装过该应用的全新设备,安装后写入localStorage数据,卸载再重装,数据肯定不会回来
你的示例项目配置检查要点
打开项目根目录的config.xml,重点看Android平台相关配置:
- 检查是否禁用了自动备份:需要在
<platform name="android">节点下添加以下配置,强制关闭系统备份:
<preference name="AndroidBackup" value="false" />
- 确认WebView存储路径的配置(Cordova 7.x默认路径是
/data/data/[你的包名]/app_webview/),如果没有特殊修改,那就是自动备份在搞鬼
临时&长期解决办法
- 测试阶段:卸载应用后手动清除系统对应备份,或者使用不同的调试签名打包(系统不会跨签名恢复备份)
- 正式版本:在
config.xml中添加上述AndroidBackup配置,彻底禁用自动备份;也可以在AndroidManifest.xml中直接配置android:allowBackup="false"(Cordova会自动同步这个配置)
内容的提问来源于stack exchange,提问作者huggie
相关产品推荐
相关产品推荐

