import { isIosDevice } from '@dukang/weixin-sdk'; /** 扫码前发起 OAuth 时标记,回跳后在首页续扫 */ export const SHOP_PENDING_SCAN_KEY = 'shop_pending_scan'; /** 短信登录后绑定微信等 OAuth 回跳:下次手动扫码加长预热(不自动打开相机) */ export const SHOP_SCAN_WARMUP_KEY = 'shop_scan_warmup'; export function markPendingScanAfterAuth(): void { try { sessionStorage.setItem(SHOP_PENDING_SCAN_KEY, '1'); } catch { /* ignore */ } } export function peekPendingScanAfterAuth(): boolean { try { return sessionStorage.getItem(SHOP_PENDING_SCAN_KEY) === '1'; } catch { return false; } } export function clearPendingScanAfterAuth(): void { try { sessionStorage.removeItem(SHOP_PENDING_SCAN_KEY); } catch { /* ignore */ } } /** OAuth(含短信登录后绑微信)回跳后,标记下一次扫码需要加长预热 */ export function markScanWarmupAfterAuth(): void { try { sessionStorage.setItem(SHOP_SCAN_WARMUP_KEY, '1'); } catch { /* ignore */ } } export function consumeScanWarmupAfterAuth(): boolean { try { if (sessionStorage.getItem(SHOP_SCAN_WARMUP_KEY) !== '1') return false; sessionStorage.removeItem(SHOP_SCAN_WARMUP_KEY); return true; } catch { return false; } } /** OAuth 回跳后延迟再调 scanQRCode(iOS JSSDK 离线校验更慢) */ export function getPostAuthScanDelayMs(): number { return isIosDevice() ? 1200 : 600; }