/** * Cloudflare Pages Function - 版本检查 API * 访问路径: /api/version */ interface VersionInfo { version: string; forceUpdate: boolean; updateMessage: string; updateUrl: string; minSupportVersion: string; } interface Env { // 可以在这里添加环境变量类型 } interface VersionConfig { ios: VersionInfo; android: VersionInfo; browser: VersionInfo; } // 版本配置 - 直接在这里管理版本信息 const versionConfig: VersionConfig = { ios: { version: "0.0.3", forceUpdate: false, updateMessage: "修复了一些问题并优化了性能", updateUrl: "https://apps.apple.com/app/id123456789", minSupportVersion: "0.0.1", }, android: { version: "0.0.3", forceUpdate: false, updateMessage: "修复了一些问题并优化了性能", updateUrl: "https://play.google.com/store/apps/details?id=riwa.ionic.app", minSupportVersion: "0.0.1", }, browser: { version: "0.0.3", forceUpdate: false, updateMessage: "修复了一些问题并优化了性能", updateUrl: "", minSupportVersion: "0.0.1", }, }; export const onRequestGet: PagesFunction = async (context) => { try { const { searchParams } = new URL(context.request.url); const platform = searchParams.get("platform") || "browser"; // 验证平台参数 if (!["ios", "android", "browser"].includes(platform)) { return new Response( JSON.stringify({ error: "Invalid platform parameter" }), { status: 400, headers: { "Content-Type": "application/json" }, }, ); } // 获取对应平台的版本信息 const versionInfo = versionConfig[platform as keyof VersionConfig]; // 返回版本信息 return new Response(JSON.stringify(versionInfo), { status: 200, headers: { "Content-Type": "application/json", "Cache-Control": "public, max-age=300", // 缓存5分钟 "Access-Control-Allow-Origin": "*", }, }); } catch (error) { console.error("Version check error:", error); return new Response( JSON.stringify({ error: "Internal server error" }), { status: 500, headers: { "Content-Type": "application/json" }, }, ); } }; // 支持 CORS 预检请求 export const onRequestOptions: PagesFunction = async () => { return new Response(null, { status: 204, headers: { "Access-Control-Allow-Origin": "*", "Access-Control-Allow-Methods": "GET, OPTIONS", "Access-Control-Allow-Headers": "Content-Type", }, }); };