{"_id":"@cordova-ohos/cordova-plugin-nativestorage","_rev":"3-712bb9110ed18dbab5573b7c9ddba4eb","name":"@cordova-ohos/cordova-plugin-nativestorage","dist-tags":{"latest":"2.3.3"},"versions":{"2.3.2":{"name":"@cordova-ohos/cordova-plugin-nativestorage","version":"2.3.2","keywords":["cordova","nativestorage","ecosystem:cordova","cordova-openharmony"],"author":{"name":"Huawei Device, Inc. Ltd. and","email":"马弓手"},"license":"Apache-2.0","_id":"@cordova-ohos/cordova-plugin-nativestorage@2.3.2","maintainers":[{"name":"luqi_tan","email":"295099422@qq.com"},{"name":"wanpengsz","email":"wanpengsz@163.com"},{"name":"xkh111","email":"xukaihui11@163.com"}],"bugs":{"url":"https://gitcode.com/OpenHarmony-Cordova/cordova-plugin-nativestorage/issues"},"dist":{"shasum":"205e19e31937c13a2220af9efdc25ad0e9cac497","tarball":"https://registry.npmjs.org/@cordova-ohos/cordova-plugin-nativestorage/-/cordova-plugin-nativestorage-2.3.2.tgz","fileCount":10,"integrity":"sha512-hj7hri7fA1i+prcTAQBIwg7ikwJZuyfC91G8MNw8dUJqEbIRT8MHvo7EZVgvSX7HRlk5MCurQjh4KvNzWmLagw==","signatures":[{"sig":"MEQCIDjyn7GEYpoU6cZ/ReLaipqZPxp5+bygmD2T7TdkDYwhAiBI+kgTHofad2qQmXZekKxzWnbMgIUSfTndJyHiOvYitQ==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":72681},"cordova":{"id":"cordova-plugin-nativestorage","platforms":["ohos"]},"engines":{"cordovaDependencies":{"2.3.2":{"hcordova":">=1.0.0","@cordova-ohos/ohos":">=2.0.0"}}},"gitHead":"e3c150ef1328470f029580c29d657f2824c0558d","_npmUser":{"name":"wanpengsz","email":"wanpengsz@163.com"},"repository":{"url":"gitcode:OpenHarmony-Cordova/cordova-plugin-nativestorage","type":"git"},"_npmVersion":"9.6.2","description":"Cordova Nativestorage Plugin","directories":{},"_nodeVersion":"20.16.0","_hasShrinkwrap":false,"_npmOperationalInternal":{"tmp":"tmp/cordova-plugin-nativestorage_2.3.2_1773997138030_0.9814718058700944","host":"s3://npm-registry-packages-npm-production"}},"2.3.3":{"name":"@cordova-ohos/cordova-plugin-nativestorage","version":"2.3.3","description":"Cordova Nativestorage Plugin","cordova":{"id":"cordova-plugin-nativestorage","platforms":["ohos"]},"repository":{"type":"git","url":"gitcode:CPF-Cordova/cordova-plugin-nativestorage"},"bugs":{"url":"https://gitcode.com/CPF-Cordova/cordova-plugin-nativestorage/issues"},"keywords":["cordova","nativestorage","ecosystem:cordova","cordova-openharmony"],"engines":{"cordovaDependencies":{"2.3.3":{"@cordova-ohos/ohos":">=2.0.0","hcordova":">=1.0.0"}}},"author":{"name":"Huawei Device, Inc. Ltd. and","email":"马弓手"},"license":"Apache-2.0","_id":"@cordova-ohos/cordova-plugin-nativestorage@2.3.3","gitHead":"aeea8dd6fcea7de7c5beb6d2fc6752a69a78a6a1","_nodeVersion":"22.0.0","_npmVersion":"10.5.1","dist":{"integrity":"sha512-lMI7j6HQYXln+nTCZdkEFV37wgKj9OGz+GZmZKooor5AXG4PqDGoRDUNO4gjY6GkEkXCkLUvQ8yItQatz8CNUg==","shasum":"2bc3f70f919f079c35df16d40ae29c01e1892132","tarball":"https://registry.npmjs.org/@cordova-ohos/cordova-plugin-nativestorage/-/cordova-plugin-nativestorage-2.3.3.tgz","fileCount":11,"unpackedSize":94260,"signatures":[{"keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U","sig":"MEUCIHsX4EwGGxmfCXka3H3MQr2/WzlG5nHQ6yIQVJIz2MmJAiEAzGKwiB9hnPtLOwIInR0SY3z9wQlhfPs0nGQ8QydjyTA="}]},"_npmUser":{"name":"luqi_tan","email":"295099422@qq.com"},"directories":{},"maintainers":[{"name":"luqi_tan","email":"295099422@qq.com"},{"name":"wanpengsz","email":"wanpengsz@163.com"},{"name":"xkh111","email":"xukaihui11@163.com"},{"name":"hcordova","email":"chenlihuiabc@163.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages-npm-production","tmp":"tmp/cordova-plugin-nativestorage_2.3.3_1785155905682_0.09692319753282597"},"_hasShrinkwrap":false}},"time":{"created":"2026-03-20T08:58:57.963Z","modified":"2026-07-27T12:38:26.043Z","2.3.2":"2026-03-20T08:58:58.214Z","2.3.3":"2026-07-27T12:38:25.824Z"},"bugs":{"url":"https://gitcode.com/CPF-Cordova/cordova-plugin-nativestorage/issues"},"author":{"name":"Huawei Device, Inc. Ltd. and","email":"马弓手"},"license":"Apache-2.0","keywords":["cordova","nativestorage","ecosystem:cordova","cordova-openharmony"],"repository":{"type":"git","url":"gitcode:CPF-Cordova/cordova-plugin-nativestorage"},"description":"Cordova Nativestorage Plugin","maintainers":[{"name":"luqi_tan","email":"295099422@qq.com"},{"name":"wanpengsz","email":"wanpengsz@163.com"},{"name":"xkh111","email":"xukaihui11@163.com"},{"name":"hcordova","email":"chenlihuiabc@163.com"}],"readme":"# <center>cordova-plugin-nativestorage</center>\r\n\r\n[![zh-CN](https://img.shields.io/badge/lang-中文-blue.svg)](README.md)\r\n[![en](https://img.shields.io/badge/lang-English-blue.svg)](README.en.md)\r\n\r\n本项目基于 [cordova-plugin-nativestorage@2.3.2](https://www.npmjs.com/package/cordova-plugin-nativestorage/v/2.3.2) 开发，本文档重点阐述其在 OpenHarmony（OHOS）系统中的具体应用。\r\n- [cordova-plugin-nativestorage](#cordova-plugin-nativestorage)\r\n  - [简介](#简介)\r\n  - [支持平台](#支持平台)\r\n  - [下载安装](#下载安装)\r\n    - [从 npm 安装（推荐）](#从-npm-安装推荐)\r\n    - [指定平台安装 ohos](#指定平台安装-ohos)\r\n    - [从 GitCode 仓库安装](#从-gitcode-仓库安装)\r\n    - [离线安装（本地包）](#离线安装本地包)\r\n    - [安装后验证](#安装后验证)\r\n    - [卸载](#卸载)\r\n  - [约束与限制](#约束与限制)\r\n    - [兼容性](#兼容性)\r\n  - [使用示例](#使用示例)\r\n    - [1. 存储和获取 boolean 数据](#1-存储和获取-boolean-数据)\r\n    - [2. 存储和获取整型数据](#2-存储和获取整型数据)\r\n    - [3. 存储和获取 double 数据](#3-存储和获取-double-数据)\r\n    - [4. 存储和获取字符串数据](#4-存储和获取字符串数据)\r\n    - [5. 存储和获取 json 数据](#5-存储和获取-json-数据)\r\n    - [6. 获取所有存储的数据](#6-获取所有存储的数据)\r\n    - [7. 删除数据](#7-删除数据)\r\n    - [8. 清除所有数据](#8-清除所有数据)\r\n  - [使用说明](#使用说明)\r\n    - [1. 全局对象说明](#1-全局对象说明)\r\n    - [2. 回调函数说明](#2-回调函数说明)\r\n    - [3. 数据类型说明](#3-数据类型说明)\r\n    - [4. 注意事项](#4-注意事项)\r\n  - [目录结构](#目录结构)\r\n  - [贡献代码](#贡献代码)\r\n  - [许可证](#许可证)\r\n  - [官方资源](#官方资源)\r\n\r\n\r\n## 简介\r\n\r\n`cordova-plugin-nativestorage` 是一款高性能 Cordova 本地存储插件，专为混合移动应用设计，提供**跨平台、安全可靠的本地数据持久化方案**。相比 Cordova 原生 `localStorage`，本插件直接调用 Android/iOS/OHOS 原生存储 API，具备更高的存储容量、更快的读写速度和更强的安全性，支持存储字符串、数字、布尔值、对象等多种数据类型，适用于用户配置缓存、登录状态保持、离线数据存储等场景。\r\n\r\n插件核心优势：\r\n\r\n- 原生级性能：读写速度比 `localStorage` 快 3-5 倍，支持大容量数据存储（无 5MB 限制）\r\n\r\n- 跨平台统一：Android/iOS/OHOS 存储逻辑封装统一，API 调用无需区分平台\r\n\r\n- 数据类型丰富：支持字符串、数字、布尔值、JSON 对象等，自动序列化/反序列化\r\n\r\n- 持久化保障：数据不受应用缓存清理影响，卸载应用后才会删除\r\n\r\n## 支持平台\r\n\r\n- **Android**：API 19 及以上（Android 4.4+）\r\n\r\n- **iOS**：10.0 及以上\r\n\r\n- **OHOS**：5.0+\r\n\r\n## 下载安装\r\n\r\n通过 hcordova CLI 即可快速安装插件，支持从 npm 仓库或 GitCode 仓库获取。\r\n\r\n### 从 npm 安装（推荐）\r\n\r\n```bash\r\n# 使用 hcordova CLI 安装\r\n# 安装 hcordova 命令化工具\r\nnpm install -g hcordova\r\n\r\n# 全平台安装插件\r\nhcordova plugin add cordova-plugin-nativestorage\r\n```\r\n\r\n### 指定平台安装 ohos\r\n\r\n仅为 OHOS 平台安装插件：\r\n\r\n```bash\r\n# 仅安装到 OHOS 平台\r\nhcordova plugin add cordova-plugin-nativestorage --platform ohos\r\n\r\n# 指定版本安装\r\nhcordova plugin add cordova-plugin-nativestorage@1.0.0 --platform ohos\r\n```\r\n\r\n### 从 GitCode 仓库安装\r\n\r\n仅为 OHOS 平台安装插件：\r\n\r\n```bash\r\n# 仅安装到 OHOS 平台\r\n# 默认分支安装\r\nhcordova plugin add https://gitcode.com/CPF-Cordova/cordova-plugin-nativestorage.git --platform ohos\r\n\r\n# 指定标签/分支安装\r\nhcordova plugin add https://gitcode.com/CPF-Cordova/cordova-plugin-nativestorage.git@develop --platform ohos\r\n```\r\n\r\n### 离线安装（本地包）\r\n\r\n适用于无网络环境，先下载插件包到本地，再执行离线安装：\r\n\r\n```bash\r\n# 下载插件包到本地（示例路径：../Downloads/cordova-plugin-nativestorage）\r\n# 执行离线安装\r\nhcordova plugin add ../Downloads/cordova-plugin-nativestorage --platform ohos\r\n```\r\n\r\n### 安装后验证\r\n\r\n安装完成后，可通过以下命令验证插件是否成功添加到项目中：\r\n\r\n```bash\r\n# 查看已安装的插件列表，若包含本插件 ID 则表示插件已成功安装\r\nhcordova plugin list\r\n```\r\n\r\n### 卸载\r\n\r\n```bash\r\n# Cordova CLI 全平台卸载\r\nhcordova plugin remove cordova-plugin-nativestorage \r\n\r\n# 指定平台卸载\r\nhcordova plugin remove cordova-plugin-nativestorage --platform ohos\r\n```\r\n\r\n## 约束与限制\r\n\r\n- 依赖插件：无强制依赖，可根据实际需求搭配相关插件使用\r\n\r\n### 兼容性\r\n\r\n支持：\r\n\r\n| 项目 | 版本/信息 |\r\n|-----|--------|\r\n| SDK | API12+ |\r\n| IDE | DevEco Studio: 5.0+ |\r\n| ROM | 5.1+ |\r\n| Emulator | OpenHarmony 6.0+ |\r\n\r\n在以下版本中已测试通过：\r\n\r\n| 项目 | 版本/信息 |\r\n|-----|--------|\r\n| @cordova-ohos/ohos | 14.0.1-ohos-14.0.1 |\r\n| SDK | 5.0.0(12) |\r\n| IDE | DevEco Studio: 6.0.13.200 |\r\n| ROM | 5.1.0.120 SP3 |\r\n| Emulator | OpenHarmony 6.0.1(21) |\r\n\r\n## 使用示例\r\n\r\n插件暴露全局对象 `window.NativeStorage`，以下为各类数据存储、获取、删除等操作的完整使用示例，可直接复制到项目中使用。\r\n\r\n### 1. 存储和获取 boolean 数据\r\n\r\n```javascript\r\n// 存储数据\r\nfunction setStorageBool() {\r\n    NativeStorage.putBoolean(\"keyBool\", false, function(info){\r\n        console.log(\"存储的数据：\"+info);\r\n    },function(error){\r\n        console.log(error); // 错误信息字符串\r\n    })\r\n}\r\n// 获取数据\r\nfunction getStorageBool() {\r\n    NativeStorage.getBoolean(\"keyBool\", function(info){\r\n        console.log(\"获取到的数据：\"+info);\r\n    },function(error){\r\n        console.log(error);// 错误信息字符串\r\n    })\r\n}\r\n```\r\n\r\n### 2. 存储和获取整型数据\r\n\r\n```javascript\r\n// 存储数据\r\nNativeStorage.putInt(\"keyInt\", 123, function(info){\r\n    console.log(\"存储的数据：\"+info);\r\n},function(error){\r\n     console.log(error);// 错误信息字符串\r\n})\r\n\r\n// 获取数据\r\nfunction getStorageNumber() {\r\n    NativeStorage.getInt(\"keyInt\", function(info){\r\n        console.log(\"获取到的数据：\"+info);\r\n    },function(error){\r\n         console.log(error);// 错误信息字符串\r\n    })\r\n}\r\n```\r\n\r\n### 3. 存储和获取 double 数据\r\n\r\n```javascript\r\n// 存储数据\r\nfunction setStorageDouble() {\r\n    NativeStorage.putDouble(\"keyDouble\", 123.1234, function(info){\r\n       console.log(\"存储的数据：\"+info);\r\n    },function(error){\r\n       console.log(error);// 错误信息字符串\r\n    })\r\n}\r\n\r\n// 获取数据\r\nfunction getStorageDouble() {\r\n    NativeStorage.getDouble(\"keyDouble\", function(info){\r\n         console.log(\"获取到的数据：\"+info);\r\n    },function(error){\r\n        console.log(error);\r\n    })\r\n}\r\n```\r\n\r\n### 4. 存储和获取字符串数据\r\n\r\n```javascript\r\n// 存储数据\r\nfunction setStorageString() {\r\n    NativeStorage.putString(\"keyString\", \"hello world\", function(info){\r\n        console.log(\"获取到的数据：\"+info);\r\n    },function(error){\r\n       console.log(error);// 错误信息字符串\r\n    })\r\n}\r\n\r\n// 获取数据\r\nfunction getStorageString() {\r\n    NativeStorage.getString(\"keyString\", function(info){\r\n        console.log(\"获取到的数据：\"+info);\r\n    },function(error){\r\n        console.log(error);\r\n    })\r\n}\r\n```\r\n\r\n### 5. 存储和获取 json 数据\r\n\r\n```javascript\r\n// 存储数据\r\nfunction setStorageItem() {\r\n    var obj = {name: \"NativeStorage\", author: \"GillesCallebaut\"};\r\n    NativeStorage.putObject(\"keyItem\", obj, function(info){\r\n       console.log(\"存储的数据：\"+info);\r\n    },function(error){\r\n       console.log(error);// 错误信息字符串\r\n    })\r\n}\r\n\r\n// 获取数据\r\nfunction getStorageItem() {\r\n    NativeStorage.getObject(\"keyItem\", function(info){\r\n        console.log(\"获取到的数据：\"+info);\r\n    },function(error){\r\n       console.log(error);// 错误信息字符串\r\n    })\r\n}\r\n```\r\n\r\n### 6. 获取所有存储的数据\r\n\r\n```javascript\r\n// 获取所有数据\r\nfunction getStorageAll() {\r\n    NativeStorage.keys(function(info){\r\n         console.log(\"所有数据：\"+JSON.stringify(info));\r\n    },function(error){\r\n        console.log(error);\r\n    })\r\n}\r\n```\r\n\r\n### 7. 删除数据\r\n\r\n```javascript\r\n// 删除键值数据\r\nfunction delStorage() {\r\n    NativeStorage.remove(\"keyItem\", function(){\r\n        console.log(\"删除成功\");\r\n    },function(error){\r\n        console.log(error);// 错误信息字符串\r\n    })\r\n}\r\n```\r\n\r\n### 8. 清除所有数据\r\n\r\n```javascript\r\n// 清除所有数据\r\nfunction clearStorage() {\r\n    NativeStorage.clear(function(){\r\n        console.log(\"清除成功\");\r\n    },function(error){\r\n       console.log(error);// 错误信息字符串\r\n    })\r\n}\r\n```\r\n\r\n## 使用说明\r\n\r\n以下为插件使用的核心说明，帮助开发者快速上手，避免使用过程中出现异常。\r\n\r\n### 1. 全局对象说明\r\n\r\n插件安装后，会自动暴露全局对象 `window.NativeStorage`，无需额外引入，直接在代码中调用即可，支持在 Cordova 应用的所有页面和脚本中使用。\r\n\r\n### 2. 回调函数说明\r\n\r\n所有 API 均支持回调函数机制，包含成功回调和失败回调两个参数：\r\n\r\n- 成功回调（第一个参数）：操作成功时触发，参数 `info` 为操作相关信息（如存储的数据、获取到的数据等）。\r\n\r\n- 失败回调（第二个参数）：操作失败时触发，参数 `error` 为错误信息字符串，可用于排查问题（如数据存储失败、键值不存在等）。\r\n\r\n### 3. 数据类型说明\r\n\r\n插件支持多种数据类型的存储与读取，无需手动进行序列化/反序列化，内部会自动处理：\r\n\r\n- 布尔值（boolean）：通过 `putBoolean` 存储、`getBoolean` 获取。\r\n\r\n- 整型（int）：通过 `putInt` 存储、`getInt` 获取，支持正负整数。\r\n\r\n- 浮点型（double）：通过 `putDouble` 存储、`getDouble` 获取，支持小数。\r\n\r\n- 字符串（string）：通过 `putString` 存储、`getString` 获取，支持任意字符串内容。\r\n\r\n- JSON 对象：通过 `putObject` 存储、`getObject` 获取，支持任意合法 JSON 格式对象（数组、嵌套对象等）。\r\n\r\n### 4. 注意事项\r\n\r\n- 数据持久化：存储的数据会持久化保存在设备本地，不受应用重启、缓存清理影响，仅在应用卸载时会被删除。\r\n\r\n- 键值唯一性：存储时需保证键（key）的唯一性，相同键值会覆盖原有数据。\r\n\r\n- 错误处理：建议在失败回调中添加错误日志打印，便于排查数据操作异常（如设备存储权限不足、数据格式错误等）。\r\n\r\n- 大容量数据：相比原生 `localStorage`，本插件无 5MB 存储限制，可安全存储大容量数据（如离线缓存、大体积 JSON 数据等）。\r\n\r\n## 目录结构\r\n\r\n```\r\ncordova-plugin-nativestorage       # [根目录] Cordova 插件项目根目录\r\n├── src                            # [源码目录] 存放原生平台代码\r\n│   └── main                       # [主目录] 主代码目录\r\n│       └── cpp                    # [C++ 目录] C++ 原生代码目录\r\n│           └── NativeStorage      # [模块目录] NativeStorage 模块文件夹\r\n│               ├── NativeStorage.cpp  # [C++ 实现] C++ 源文件，实现具体功能\r\n│               └── NativeStorage.h    # [C++ 声明] C++ 头文件，定义接口\r\n├── www                            # [前端目录] 存放供 Web 端调用的 JS 接口文件\r\n│   ├── LocalStorageHandle.js      # [JS 文件] 本地存储操作的逻辑处理\r\n│   ├── mainHandle.js              # [JS 文件] 插件主入口及核心调度逻辑\r\n│   └── NativeStorageError.js      # [JS 文件] 自定义错误类的定义\r\n├── .gitignore                     # [配置文件] Git 版本控制忽略列表\r\n├── LICENSE                        # [文本文件] 项目开源许可证\r\n├── OAT.xml                        # [配置文件] OHOS 相关的配置或签名文件\r\n├── package.json                   # [配置文件] NPM 包管理及依赖配置\r\n├── plugin.xml                     # [核心配置] Cordova 插件核心配置文件\r\n└── README.md                      # [说明文档] 项目说明文档\r\n```\r\n\r\n## 贡献代码\r\n\r\n使用过程中发现任何问题都可以提 [Issue](https://gitcode.com/CPF-Cordova/cordova-plugin-nativestorage/issues) ，当然也非常欢迎发 [PR](https://gitcode.com/CPF-Cordova/cordova-plugin-nativestorage/pulls) 共建。\r\n\r\n## 许可证\r\n\r\n本插件基于 **Apache License 2.0** 开源，详见 [LICENSE](LICENSE) 文件。\r\n\r\n## 官方资源\r\n\r\n- Android 和 iOS：[cordova-plugin-nativestorage 官方指南](https://www.npmjs.com/package/cordova-plugin-nativestorage)\r\n\r\n- GitCode 仓库：[CPF-Cordova/cordova-plugin-nativestorage](https://gitcode.com/CPF-Cordova/cordova-plugin-nativestorage)\r\n","readmeFilename":"README.md"}