Auto.js学习笔记11:本地存储功能实现,其实就是使用的Android缓存SharedPreference的xml文件

申明本人使用的autojs是4.1.1版本

本地存储storages

storages模块提供了保存简单数据、用户配置等的支持。保存的数据除非应用被卸载或者被主动删除,否则会一直保留。

storages支持number, boolean, string等数据类型以及把Object, ArrayJSON.stringify序列化存取。

storages保存的数据在脚本之间是共享的,任何脚本只要知道storage名称便可以获取到相应的数据,因此它不能用于敏感数据的储存。 storages无法像Web开发中LocalStorage一样提供根据域名独立的存储,因为脚本的路径随时可能改变。

storages.create(name)

  • name {string} 本地存储名称

创建一个本地存储并返回一个Storage对象。不同名称的本地存储的数据是隔开的而相同名称的本地存储的数据是共享的

例如在一个脚本中,创建名称为ABC的存储并存入a=123:

var storage = storages.create("ABC");
storage.put("a", 123);

Storages

注意说明 :

以下api一定要这样写,var sgObj= storages.create("ABC"); 来获取Storage对象,在进行赋值

sgObj.put("a", 123); 才行

获取值(get(key[, defaultValue]))

  • key {string} 键值
  • defaultValue {any} 可选,默认值

从本地存储中取出键值为key的数据并返回。

如果该存储中不包含该数据,这时若指定了默认值参数则返回默认值,否则返回undefined。

返回的数据可能是任意数据类型,这取决于使用Storage.put保存该键值的数据时的数据类型。

设置值 (put(key, value))

  • key {string} 键值
  • value {any} 值

把值value保存到本地存储中。value可以是undefined以外的任意数据类型。如果value为undefined则抛出TypeError

存储的过程实际上是使用JSON.stringify把value转换为字符串再保存,因此value必须是可JSON化的才能被接受。

移除键值数据(remove(key))

移除键值为key的数据。不返回任何值。

包含键值的数据(contains(key))

  • key {string} 键值

返回该本地存储是否包含键值为key的数据。是则返回true,否则返回false。

移除该本地存储的所有数据(clear())

移除该本地存储的所有数据。不返回任何值。

实际开发工具方法

 myUtils.isEmpty()是我自定义的非空判断函数。

var SharedPrefersUtilsClass = {
  getWxAutoConfigStorage:function(){
        let storage = storages.create("wx_auto_send_file");
        return storage;
    },initWxAutoConfig:function(){
        if(!this.getWxAutoConfigStorage().contains("send_info")||
        myUtils.isEmpty(this.getWxAutoSendConfig())){//第一次存储
            this.setWxAutoSendConfig(wxAutoConfigObj);
        }
    },
    /** 获取微信信息发送所有配置信息 */
    getWxAutoSendConfig:function(){
        return this.getWxAutoConfigStorage().get("send_info");
    },
    /** 设置微信信息发送所有配置信息 */
    setWxAutoSendConfig :function (sendInfoObj){
        this.getWxAutoConfigStorage().put("send_info", JSON.stringify(sendInfoObj));
    },
    /** 清除微信信息发送所有配置信息的数据 */
    removeWxAutoSendConfig:function(){
       return this.getWxAutoConfigStorage().remove("send_info");
    },
    /** 清除所有数据 */
    clearAllData:function(){
        this.getWxAutoConfigStorage().clear();
    }
}

光看不敲是没用的
看后一定要去实践
一定要去敲代码
一定要去运行试错
这样才是有意义的学习

猜你喜欢

转载自blog.csdn.net/piyangbo/article/details/125170842