如何在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中尝试此操作时,它返回一个空字符串。
答案 0 :(得分:0)
你必须等待webViewDidFinishLoad,因为localStorage存在于webView中,如果webView没有加载你没有localStorage的app,那就是你得到空字符串的原因。
如果要使用didFinishLaunchingWithOptions
上可用的其他存储空间,则必须使用本机NSUserDefaults
您可以使用此插件使用javascript设置NSUserDefaults
:
https://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"];