/** * CTA 按钮控制器 * * - 页面加载后按钮常驻可见(工具栏之上) * - 填色完成后调用 `ctaHighlight()` 放大 + 强脉冲,引导用户点击 * - 点击后通过 mraid 适配层跳转 Store */ import { openStoreUrl } from "./mraid"; /** App Store / Google Play 落地页链接,按需替换 */ // 正式上线时换回自己的 app: // const STORE_URL_IOS = "https://apps.apple.com/app/id1575480118"; // const STORE_URL_ANDROID = "https://play.google.com/store/apps/details?id=com.pcoloring.art.puzzle.color.by.number"; // 测试期间使用 PBN,避免产生无效转化 const STORE_URL_IOS = "https://apps.apple.com/gb/app/paint-by-number-coloring-games/id1420058690"; const STORE_URL_ANDROID = "https://play.google.com/store/apps/details?id=com.oakever.paintbynumber"; function getStoreUrl(): string { const ua = navigator.userAgent; if (/android/i.test(ua)) return STORE_URL_ANDROID; return STORE_URL_IOS; // iOS / 桌面 fallback } /** * 初始化 CTA 按钮:绑定点击事件。 * 应在 DOM ready 后调用一次。 */ export function initCta(): void { const btn = document.getElementById("cta-btn"); if (!btn) return; btn.addEventListener("click", () => { openStoreUrl(getStoreUrl()); }); } /** * 填色完成后调用,放大按钮并加强脉冲动画,吸引用户点击。 */ export function ctaHighlight(): void { const btn = document.getElementById("cta-btn"); if (!btn) return; btn.classList.add("cta-highlight"); }