feat: 增强 iframe 通信机制与通知处理功能

实现 resolvePostMessageTargetOrigin,优化 iframe 消息通信中的目标来源(origin)解析与校验。
更新 IframeBridge:支持定期刷新允许的来源列表,并优化消息事件管理机制。
重构 usePendingWalletReconcile:优化待对账通知的获取与缓存逻辑,提升性能与用户体验。
增强 NotificationsScreen:新增待对账通知内容,并优化界面展示效果。
更新英文、尼泊尔语与中文语言包,新增待对账通知相关翻译文案。
This commit is contained in:
2026-06-01 13:38:30 +08:00
parent aeaba5eea3
commit b819894e75
17 changed files with 362 additions and 72 deletions

View File

@@ -5,6 +5,7 @@ import { useErrorStore } from "@/stores/error-store";
import {
isIframeOriginAllowed,
loadIframeAllowedOrigins,
resolvePostMessageTargetOrigin,
} from "@/lib/iframe-origins";
/** Token 过期前警告阈值(毫秒) */
@@ -91,7 +92,7 @@ export function useTokenRefresh(): {
type: "LOTTERY_TOKEN_REFRESH_REQUEST",
timestamp: Date.now(),
},
"*", // 或指定主站域名
resolvePostMessageTargetOrigin(),
);
}, []);
@@ -124,7 +125,7 @@ export function useTokenRefresh(): {
const handleMessage = async (event: MessageEvent): Promise<void> => {
if (!isIframeOriginAllowed(event.origin)) {
await loadIframeAllowedOrigins();
await loadIframeAllowedOrigins(true);
if (!isIframeOriginAllowed(event.origin)) {
console.warn("[TokenRefresh] Ignored message from unknown origin:", event.origin);
return;