【发布时间】:2019-03-07 17:06:40
【问题描述】:
我似乎对 localStorage 和 Phonegap 有疑问。据我了解,无论该应用程序是否在内存中,移动 safari 都应该保留本地存储。出于某种原因,当我从内存中清除我的应用程序并重新启动它时,本地存储缓存消失了(我可以确认它实际上是在设置数据)。
有什么想法吗?
编辑:想通了。 这根本不是 localStorage 的问题。当应用退出时,商店确实持续存在。问题是由于Phonegap 网络回调发生在 jQuery 的文档准备好之后。
这就是我修复它的方法:
function onDeviceReady() {
navigator.network.isReachable("google.com", reachableCallback, {});
}
// Check network status
function reachableCallback(reachability) {
// There is no consistency on the format of reachability
var networkState = reachability.code || reachability;
var states = {};
states[NetworkStatus.NOT_REACHABLE] = 'No network connection';
states[NetworkStatus.REACHABLE_VIA_CARRIER_DATA_NETWORK] = 'Carrier data connection';
states[NetworkStatus.REACHABLE_VIA_WIFI_NETWORK] = 'WiFi connection';
if (networkState != 0) online = true;
}
////////// Checking navigator.onLine before document ready is key ///////////
var online = navigator.onLine || false;
$(document).ready(function() {
$(document).bind('deviceready', function(){
onDeviceReady()
})
})
【问题讨论】:
-
您能否编辑您的帖子以将答案放入实际答案中?
-
从 iOS 5.1 开始,localStorage 可能不是持久的。如果您的空间不足,您的 localStorage 可能会被操作系统清除。
标签: cordova local-storage