如何在应用启动时访问iOS中的本地存储

时间:2015-03-18 20:08:34

标签: ios cordova local-storage

如何在iOS中访问本地存储?我需要在didFinishLaunchingWithOptions方法中执行此操作。这是一个cordova phonegap voip应用程序。 IOS有时会直接将我的应用程序重新启动到后台。

我找到了这种方法,但需要在webViewDidFinishLoad中完成: https://getsatisfaction.com/application_craft/topics/reading_localstorage_from_ios_phonegap_objective_c

CDVLocalStorage *localStorage = [viewController.pluginObjects objectForKey:@"CDVLocalStorage"];
NSString *sidjs = @"localStorage['sid'];";
NSString* sid = [localStorage.webView stringByEvaluatingJavaScriptFromString: sidjs];
NSLog(@"sid: %@", sid);

当我在didFinishLaunchingWithOptions中尝试此操作时,它返回一个空字符串。

1 个答案:

答案 0 :(得分:0)

你必须等待webViewDidFinishLoad,因为localStorage存在于webView中,如果webView没有加载你没有localStorage的app,那就是你得到空字符串的原因。

如果要使用didFinishLaunchingWithOptions上可用的其他存储空间,则必须使用本机NSUserDefaults 您可以使用此插件使用javascript设置NSUserDefaultshttps://github.com/apla/me.apla.cordova.app-preferences/

所以从javascript你这样做:

var prefs = plugins.appPreferences;

prefs.store (ok, fail, 'key', 'value');
function ok (value) {}
function fail (error) {}

didFinishLaunchingWithOptions上使用

NSUserDefaults *defaults = [NSUserDefaults standardUserDefaults];
 [defaults objectForKey:@"key"];