加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 综合聚焦 > 服务器 > 安全 > 正文

Angularjs localStorage存储cordova应用程序中的设置

发布时间:2020-12-17 10:21:47 所属栏目:安全 来源:网络整理
导读:我正在使用AngularJS v1.2.7和Cordova 3.3.0( Android)我需要在手机内存中存储一??些设置 – 所以当应用程序/设备重新启动时,应用程序仍然可以访问这些存储的数据. 关于这个的任何教程?我找不到任何:( 知道Cordova支持; LocalStorage,WebSQL(no more mainta
我正在使用AngularJS v1.2.7和Cordova 3.3.0( Android)我需要在手机内存中存储一??些设置 – 所以当应用程序/设备重新启动时,应用程序仍然可以访问这些存储的数据.

关于这个的任何教程?我找不到任何:(

知道Cordova支持; LocalStorage,WebSQL(no more maintained),IndexedDB(Opera和Safari的not widely supported).我倾向于使用LocalStorage,但是即使在我重启设备后它仍保留/记住数据?

目前我正在使用答案#12969480 by Richard Szalay.

我建议编写一个自定义插件,并在Objective-C用户默认值中正确存储设置.

LocalStorage不是永久存储,而WebSQL似乎对存储设置有点过分.

您不必过多参与Objective-C并且有很好的Phonegap / Cordova插件指南:

http://docs.phonegap.com/en/3.3.0/guide_hybrid_plugins_index.md.html#Plugin%20Development%20Guide

我使用此代码存储“FirstRun”变量来检查应用程序是否是新安装.插件检查应用程序之前是否已运行,并返回1或0,将其解析为整数并计算为true / false.

您可以更新此代码并向“AppChecks”类添加更多方法.我把所有简单的检查和设置存储放在这个类中.

AppChecks.h

#import <Cordova/CDVPlugin.h>

@interface AppChecks : CDVPlugin

- (void) checkFirstRun:(NSMutableArray*)arguments withDict:(NSMutableDictionary*)options;

@end

AppChecks.m

#import "AppChecks.h"
#import <Cordova/CDVPluginResult.h>

@implementation AppChecks

- (void) checkFirstRun:(NSMutableArray *)arguments withDict:(NSMutableDictionary *)options {
NSString* callbackId = [arguments objectAtIndex:0];

CDVPluginResult* pluginResult = nil;
NSString* javaScript = nil;

@try {

    NSUserDefaults *defaults = [NSUserDefaults standardUserDefaults];
    NSString *isFirstRun = @"1";

    if (![defaults objectForKey:@"firstRun"]) {
        [defaults setObject:[NSDate date] forKey:@"firstRun"];
    } else {
        isFirstRun = @"0";
    }

    pluginResult = [CDVPluginResult resultWithStatus:CDVCommandStatus_OK messageAsString:isFirstRun];
    javaScript = [pluginResult toSuccessCallbackString:callbackId];
} @catch (NSException* exception) {
    // could not get locale
    pluginResult = [CDVPluginResult resultWithStatus:CDVCommandStatus_JSON_EXCEPTION messageAsString:[exception reason]];
    javaScript = [pluginResult toErrorCallbackString:callbackId];
}
[self writeJavascript:javaScript];
}
@end

在我的Javascript代码中使用:

cordova.exec(
    function( isFirstRun ) {
        isFirstRun = parseInt( isFirstRun );
        if( isFirstRun ) {
          // do stuff for first run
        }
    },function(err) {
        // handle error from plugin
    },"AppChecks","checkFirstRun",[]
);

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读