Skip to content

Commit d187b02

Browse files
committed
fix(storage): use regular param for removeStorageSync instead of rest param
removeStorageSync takes a single key string, same as getStorageSync. Using rest params (...opts) incorrectly wrapped it as ["key"], causing Android to call removeValueForKey with "[\"key\"]" instead of "key". Change JS SDK from (...opts) to (opts), and align iOS/Harmony native parsing to expect a string instead of an array.
1 parent 7db5386 commit d187b02

3 files changed

Lines changed: 4 additions & 6 deletions

File tree

fe/packages/service/src/api/core/storage/index.js

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -19,7 +19,7 @@ export function getStorageSync(opts) {
1919
*
2020
* https://developers.weixin.qq.com/miniprogram/dev/api/storage/wx.removeStorageSync.html
2121
*/
22-
export function removeStorageSync(...opts) {
22+
export function removeStorageSync(opts) {
2323
return invokeAPI('removeStorageSync', opts)
2424
}
2525

harmony/dimina/src/main/ets/Bridges/DMPContainerBridgesModule+Storage.ets

Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -54,8 +54,7 @@ export class DMPContainerBridgesModuleStorage extends DMPContainerBridgesModule
5454
}
5555

5656
removeStorageSync(data: DMPMap, callback: DMPBridgeCallback): boolean {
57-
const params: object = data.toObject()
58-
const key: string = params[0]
57+
const key: string = data.toObject()
5958
const mgr = DMPMMKVManager.sharedInstance()
6059
mgr.remove(key)
6160
return true

iOS/dimina/DiminaKit/Container/Api/Storage/StorageAPI.swift

Lines changed: 2 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -48,11 +48,10 @@ public class StorageAPI: DMPContainerApi {
4848
return DMPBridgeParam(value: value ?? "")
4949
}
5050

51-
// wx.removeStorageSync(key) → params: [key]
51+
// wx.removeStorageSync(key) → params: key string
5252
@BridgeMethod(REMOVE_STORAGE_SYNC)
5353
var removeStorageSync: DMPBridgeMethodHandler = { param, env, callback in
54-
guard let array = param.getValue() as? [Any],
55-
let key = array.first as? String else { return false }
54+
guard let key = param.getValue() as? String else { return false }
5655
DMPStorage.shared.remove(key: key, encrypted: false)
5756
return true
5857
}

0 commit comments

Comments
 (0)