h5:add storage plugin
This commit is contained in:
41
doric-h5/src/plugins/StoragePlugin.ts
Normal file
41
doric-h5/src/plugins/StoragePlugin.ts
Normal file
@@ -0,0 +1,41 @@
|
||||
import { DoricPlugin } from "../DoricPlugin";
|
||||
|
||||
export class StoragePlugin extends DoricPlugin {
|
||||
setItem(args: {
|
||||
zone?: string,
|
||||
key: string,
|
||||
value: string
|
||||
}) {
|
||||
localStorage.setItem(`${args.zone}_${args.key}`, args.value)
|
||||
return Promise.resolve()
|
||||
}
|
||||
getItem(args: {
|
||||
zone?: string,
|
||||
key: string,
|
||||
}) {
|
||||
return Promise.resolve(localStorage.getItem(`${args.zone}_${args.key}`))
|
||||
}
|
||||
|
||||
remove(args: {
|
||||
zone?: string,
|
||||
key: string,
|
||||
}) {
|
||||
localStorage.removeItem(`${args.zone}_${args.key}`)
|
||||
return Promise.resolve()
|
||||
}
|
||||
clear(args: {
|
||||
zone: string,
|
||||
}) {
|
||||
let removingKeys = []
|
||||
for (let i = 0; i < localStorage.length; i++) {
|
||||
const key = localStorage.key(i)
|
||||
if (key && key.startsWith(`${args.zone}_`)) {
|
||||
removingKeys.push(key)
|
||||
}
|
||||
}
|
||||
removingKeys.forEach(e => {
|
||||
localStorage.removeItem(e)
|
||||
})
|
||||
return Promise.resolve()
|
||||
}
|
||||
}
|
Reference in New Issue
Block a user