外观
system.storage 补充 API
约 281 字小于 1 分钟
2026-07-15
storage.key(options)
按索引获取 key。
| 参数 | 类型 | 必填 |
|---|---|---|
index | Integer | 是,必须不小于 0 |
success | Function | 否,接收 key 字符串 |
fail | Function | 否 |
complete | Function | 否 |
storage.key({
index: 0,
success: key => console.log(key)
})key() 用于按数据库内部顺序枚举 key。顺序不应视为插入顺序或稳定排序;删除/新增记录后索引可能变化。
枚举示例
目标固件未确认公开 length 属性,因此只能在已知上限内逐项读取,并在失败时结束:
function getKeyAt(index) {
return new Promise((resolve, reject) => {
storage.key({
index,
success: resolve,
fail: (message, code) => reject({ message, code })
})
})
}
async function listKeys(max = 100) {
const keys = []
for (let index = 0; index < max; index++) {
try {
keys.push(await getKeyAt(index))
} catch (e) {
break
}
}
return keys
}固件明确拒绝 index < 0;越过末尾时底层 uv_db_key 会失败。不要无上限扫描。
上游新 JIDL 还定义了 get_sync() 和只读 length,但目标固件没有对应实现符号,本文不把它们计入已确认 API。
机型可用性
| Xiaomi Smart Band 10 Pro | Xiaomi Watch S4 41mm |
|---|---|
| ✅ | ✅ |