Ionic Frameworkionic 跨平台开发ionic开发

ionic3.x开发之LocalStorage

2018-07-29  本文已影响6人  星辰大海_王

LocalStorage介绍:

LocalStorage服务封装:

命令创建LocalStorage服务:

ionic g provider localStorage
代码如下:
import { HttpClient } from '@angular/common/http';
import { Injectable } from '@angular/core';

/*
  Generated class for the LocalStorageProvider provider.

  See https://angular.io/guide/dependency-injection for more info on providers
  and Angular DI.
*/
@Injectable()
export class LocalStorageProvider {
  public static  STATION_INFO="station_info";
  constructor(public http: HttpClient) {
    console.log('Hello LocalStorageProvider Provider');
  }

  //存储
  set(key,value){
    console.log(">>>>>>存储<<<<<<<");
    console.log("key",key);
    console.log("value",value);
    localStorage.setItem(key,JSON.stringify(value)); //对象转换成字符串并存储,key存在时更新
  }

  //获取
  get(key){
    console.log(`get----------->${localStorage.getItem(key)}`);
    return JSON.parse(localStorage.getItem(key)); //字符串转换成对象并返回,key不存在,返回null
  }

  //移除
  remove(key){
    localStorage.removeItem(key);//移除key后,对应的值是null
  }

  //清除所有-----慎用!(执行的后果是会清除所有localStorage对象保存的数据)
  clear(){
    localStorage.clear();
  }

  //获取键值对的个数,可根据索引取出key和value
  getLength(){
    console.log(localStorage.length);
    for(var i=0;i<localStorage.length;i++){

      var name = localStorage.key(i)​;
      console.log(name);
      var value = localStorage.getItem(name);​
      console.log(value);

 }
    return localStorage.length;
  }

  //存过期时间的方法
  setForExp(key, value) {
    var curTime = new Date().getTime();
    localStorage.setItem(key, JSON.stringify({ data: value, time: curTime }));
  }

  //指定过期时间的get方法;1000*60:过期时间为1分钟
  getWithExp(key, exp) {
    var data = localStorage.getItem(key);
    var dataObj = JSON.parse(data);
    if (new Date().getTime() - dataObj.time > exp) {
      console.log('信息已过期');
    } else {
      var dataObjDatatoJson = JSON.parse(dataObj.data)
      return dataObjDatatoJson;
    }
  }
}
使用方法;
1.在app.module.ts中导入并添加到providers:

import { LocalStorageProvider } from '../providers/local-storage/local-storage';


QQ20180729-185137@2x.png

2.在需要的地方使用:

import { LocalStorageProvider } from './../local-storage/local-storage';
import { HttpClient } from '@angular/common/http';
import { Injectable } from '@angular/core';

/*
  Generated class for the UserStorageProvider provider.

  See https://angular.io/guide/dependency-injection for more info on providers
  and Angular DI.
*/
@Injectable()
export class UserStorageProvider {

  constructor(private storage:LocalStorageProvider) {

  }
  saveUser(userInfo) {
    console.log(">>>>>saveUser userInfo : " + userInfo);
    this.storage.set("userInfo", userInfo);
  }
  getCurrentUser() {
    return this.storage.get("userInfo");
  }
  removeUser(){
    this.storage.remove("userInfo");
  }
}
上一篇下一篇

猜你喜欢

热点阅读