题目
在手机上,用户点击「连接钱包」后被跳转到钱包应用,确认后再跳回浏览器。用户反馈:回来之后页面像是重置了,有时需要重新连接,有时看不到自己的操作。
请说明这段往返流程中状态为什么会丢,以及需要做哪些设计来保证连续性。
考察目标
- 能否识别移动端往返与桌面端的差异。
- 是否理解会话持久化与回跳参数的作用。
- 能否给出恢复流程与用户提示。
考察移动端往返流程中的状态保持,以及会话恢复与用户回跳的处理。
在手机上,用户点击「连接钱包」后被跳转到钱包应用,确认后再跳回浏览器。用户反馈:回来之后页面像是重置了,有时需要重新连接,有时看不到自己的操作。
请说明这段往返流程中状态为什么会丢,以及需要做哪些设计来保证连续性。
WalletConnect 的 Pairing URI 由 symKey、methods、relay-protocol 等必需参数组成,expiryTimestamp 给出配对的过期时间。移动端跳转到钱包应用时,浏览器页面可能被系统挂起甚至回收,内存状态不适合作为恢复依据;恢复流程要能在回跳后识别同一会话,并继续原来的操作意图。
symKey、methods、relay-protocol,以及可选参数 expiryTimestamp(依据:WalletConnect Specs:Pairing URI §Parameters)expiryTimestamp 以秒为单位,规范建议生成时取当前时间加五分钟,超过该时间配对被视为过期(依据:WalletConnect Specs:Pairing URI §Parameters 的 expiryTimestamp)disconnect 事件在连接断开时发出,携带错误对象,可用于区分会话丢失(依据:EIP-1193 §Events 的 disconnect)projectId 与 metadata 初始化,storageOptions 与 customStoragePrefix 影响会话信息的持久化位置(依据:wagmi:walletConnect connector §Parameters 的 projectId、metadata、storageOptions、customStoragePrefix)createConfig 的 storage 参数决定连接状态在浏览器中的持久化方式(依据:wagmi:createConfig §Parameters 的 storage)发现这道题有问题? 反馈此题