这个错误在 Mobile Safari 上意味着什么?
只有 ArrayBuffer 和 ArrayBufferView 对象可以作为 CryptoOperationData 传递
有问题的代码是这样的:
return (window.crypto.subtle||window.crypto.webkitSubtle).importKey(
"raw"
, key.buffer
, { name: "HMAC"
, hash: { name: "SHA-1" }
}
, false
, ["sign", "verify"]
)
请注意,key
isnew Uint8Array([251, 23, 127, ... ])
因此key.buffer
应该是 的一个实例ArrayBuffer
。
iOS 想从我这里得到什么!?!?
更新
虚惊。Mobile Safari is missing TypedArray.prototype.slice
,它在其他地方用 填充Array.prototype.slice
,导致对象不是缓冲区。