NPP API 使用指南
本文将介绍 NPP 系统中 API 的使用方法。
数据存储
NPP 提供了一套异步的数据存储 API,允许插件进行基础的读写删改操作,一些复杂的操作也可以使用浏览器原生 API 实现。
1. 初始化存储空间
javascript
/**
* 初始化插件存储库
* @param {string} pluginId - 插件唯一标识符
* @returns {Promise<void>} - 初始化完成的Promise
*/
await npp.init(pluginId);
示例
javascript
// 初始化当前插件的存储
try {
await npp.init(metadata.id);
console.log('存储初始化成功');
} catch (error) {
console.error('存储初始化失败:', error);
}
2. 存储
javascript
/**
* 存储数据到当前插件的存储空间
* @param {string} key - 存储键名
* @param {any} value - 存储值 (可用可序列化的 JS 对象)
* @returns {Promise<boolean>} - 存储状态 (是否存储成功)
*/
const success = await npp.set(key, value);
示例
javascript
// 存储用户配置
async function saveUserConfig(config) {
const result = await npp.set('userConfig', config);
if (result) {
console.log('配置保存成功');
} else {
console.error('配置保存失败');
}
}
// 使用示例
const userPreferences = {
theme: 'dark',
fontSize: 16
};
saveUserConfig(userPreferences);
3. 读取
javascript
/**
* 从当前插件的存储空间获取数据
* @param {string} key - 存储键名
* @returns {Promise<any>} - Value / Undefined
*/
const value = await npp.get(key);
示例
javascript
// 读取用户配置
async function loadUserConfig() {
const config = await npp.get('userConfig');
if (config) {
console.log('配置加载成功:', config);
return config;
} else {
console.log('没有找到配置,使用默认值');
return { // 加载基础配置
theme: 'light',
fontSize: 14
};
}
}
4. 删除
javascript
/**
* 从当前插件的存储空间删除数据
* @param {string} key - 存储键名
* @returns {Promise<boolean>} - 是否删除成功
*/
const success = await npp.remove(key);
示例
javascript
// 清除用户配置
async function clearUserConfig() {
const result = await npp.remove('userConfig');
if (result) {
console.log('配置已清除');
} else {
console.error('配置清除失败');
}
}
数据存储机制说明
- Npplication API 使用 IndexedDB 进行数据存储,为每个插件创建独立的存储空间
- 所有数据存储操作都是异步的,返回 Promise
- 虽然插件可以访问其它插件的数据,但不建议这样做
- 存储的数据会持久化保存,只能手动清除
- 存储的数据大小受浏览器 IndexedDB 限制
- 不要存储过大的数据,可能会影响性能
- 确保在使用存储 API 前已初始化插件存储