为了账号安全,请及时绑定邮箱和手机立即绑定

ionic 封装H5本地储存

标签:
WebApp

本来是不打算发这篇文章的,但是最近很多人使用了官网提供的Storage,基本上都会烦恼get/set数据异步返回问题(由于使用了IndexedDB和WebSQL),所以我就决定分享一下我的代码。虽然官网的提供的相对比较智能(优先级:IndexedDB> WebSQL>localstorage)。但是如果只是存储一些简单的key/value的话,我还是会选择自己封装的方式,因为受不了异步返回。

1. 控制台输入命令创建用来存储的provider
$ ionic g provider StorageService
2. 封装函数

打开providers目录下的storage-service.ts,修改如下

import { Injectable } from '@angular/core';@Injectable()
export class StorageServiceProvider {

    constructor() {}

    write(key: string, value: any) {        if (value) {
            value = JSON.stringify(value);
        }
        localStorage.setItem(key, value);
    }

    read<T>(key: string): T {
        let value: string = localStorage.getItem(key);        if (value && value != "undefined" && value != "null") {            return <T>JSON.parse(value);
        }        return null;
    }

    sessionWrite(key: string, value: any) {        if (value) {
            value = JSON.stringify(value);
        }
        sessionStorage.setItem(key, value);
    }

    sessionRead<T>(key: string): T {
        let value: string = sessionStorage.getItem(key);        if (value && value != "undefined" && value != "null") {            return <T>JSON.parse(value);
        }        return null;
    }
}
3.使用

在需要的页面

import { StorageServiceProvider } from 'xxx'; constructor(private storageService:StorageServiceProvider ) {}//写入this.storageService.write('key','value');//读取this.storageService.read('key');



作者:No刹那光辉
链接:https://www.jianshu.com/p/565317ed16ff


点击查看更多内容
TA 点赞

若觉得本文不错,就分享一下吧!

评论

作者其他优质文章

正在加载中
  • 推荐
  • 评论
  • 收藏
  • 共同学习,写下你的评论
感谢您的支持,我会继续努力的~
扫码打赏,你说多少就多少
赞赏金额会直接到老师账户
支付方式
打开微信扫一扫,即可进行扫码打赏哦
今天注册有机会得

100积分直接送

付费专栏免费学

大额优惠券免费领

立即参与 放弃机会
意见反馈 帮助中心 APP下载
官方微信

举报

0/150
提交
取消