自己动手
$109 每个平台,一次性付费
WebViewGold 许可证:一个现成的 Xcode 或 Android Studio 项目。粘贴您的 URL,设置名称和图标,开启所需功能,构建并提交。永久免费更新。
在主页查看方案后端检查清单
Lovable、Bolt、Tempo、Hostinger Horizons 和大多数 Cursor 项目底层都是 Supabase。Supabase 在 WebViewGold 应用中运行得非常好,但有少数几个设置会默默假定自己运行在浏览器标签页里。这份清单按您遇到它们的顺序逐一讲解。
每个平台一次性 $109 起,或由我们的团队全程代劳,$698 起。
Supabase 控制台 → Authentication → URL Configuration。这些值决定了每封邮件中的链接和每次 OAuth 回调最终落在哪里。
deletecache、Config.java 中的 CLEAR_CACHE_ON_STARTUP),会话就会像在浏览器中一样保持。准则 4.8 规定:如果您提供 Google 登录,就必须同时提供 Sign in with Apple(或同等的注重隐私的选项)。
Google 拒绝在嵌入式 WebView 中进行 OAuth(即“disallowed_useragent”错误)。WebViewGold 的 Social Login Helper 无需修改代码即可解决:在 Config.swift 中把 google_login_helper_triggers 设为 ["https://accounts.google.com", "https://accounts.youtube.com"],并在 Config.java 中设置 GOOGLE_LOGIN_HELPER_TRIGGERS;之后登录会在一个使用 Google 认可的 user agent 的专用窗口中进行。详情见disallowed_useragent 指南。
Apple Developer:一个启用了 Sign in with Apple 功能的 App ID、一个返回 URL 为 https://YOUR-PROJECT.supabase.co/auth/v1/callback(或您的自定义认证域名)的 Services ID,以及一个 .p8 密钥。Supabase:Authentication → Providers → Apple,填入 Services ID、Team ID、Key ID 和生成的 client secret。这个 secret 是一个最长六个月就会过期的 JWT;请在日历里设个提醒。
supabase.auth.signInWithOAuth({ provider: "apple", options: { redirectTo: "https://app.yourbrand.com/auth/callback" } })。Apple 按钮至少要和 Google 按钮一样醒目。WebViewGold 会自动识别 appleid.apple.com;无需配置辅助工具。
在 TestFlight 构建中完整走一遍 Google 和 Apple 登录,包括一个使用 Apple“隐藏邮件地址”中转地址注册的全新账号。
从“邮件”应用中打开的 Magic Link 默认会落到 Safari:用户在网站上登录了,在应用中却没有。Universal Links(iOS)和 App Links(Android)会把指向您域名的链接转到应用中打开。在项目的 public 文件夹中托管 /.well-known/apple-app-site-association 和 /.well-known/assetlinks.json,添加 Associated Domains 功能(applinks:app.yourbrand.com),并在 Config.swift 中把 ShowExternalLink 设为 true;在 Android 上,启用 Config.java 中的 IS_DEEP_LINKING_ENABLED,并在 AndroidManifest.xml 的 intent filter 中添加该域名。Universal Links 文档和App Links 文档中有具体步骤。
在 Supabase 端,使用 PKCE 流程(supabase-js v2 的默认设置),并在回调页面上调用 exchangeCodeForSession。请为认证邮件关闭点击追踪,因为链接中的追踪域名会让关联失效。深度链接指南介绍了如何测试。

把 Web 应用转换成原生应用的绝佳方式!周转速度快,无需开发完整的原生应用就能把应用上架到应用商店!
Apple 准则 5.1.1(v) 和 Google 的账号删除政策要求在应用内提供删除账号及其数据的方式。客户端无法删除认证用户;一个使用 service role key 的小型 edge function 可以。把“删除账号”按钮连到它,之后让用户退出登录,再添加一个公开的 /delete-account 页面(Google 会要求提供这个 URL)。完整流程见账号删除指南。
// supabase/functions/delete-account/index.ts
import { createClient } from "npm:@supabase/supabase-js@2";
Deno.serve(async (req) => {
const authHeader = req.headers.get("Authorization") ?? "";
const userClient = createClient(Deno.env.get("SUPABASE_URL")!, Deno.env.get("SUPABASE_ANON_KEY")!, {
global: { headers: { Authorization: authHeader } },
});
const { data: { user }, error } = await userClient.auth.getUser();
if (error || !user) return new Response("Unauthorized", { status: 401 });
const admin = createClient(Deno.env.get("SUPABASE_URL")!, Deno.env.get("SUPABASE_SERVICE_ROLE_KEY")!);
await admin.from("profiles").delete().eq("id", user.id); // 或对 auth.users 使用 ON DELETE CASCADE
const { error: delError } = await admin.auth.admin.deleteUser(user.id);
if (delError) return new Response(delError.message, { status: 500 });
return new Response(JSON.stringify({ ok: true }), { headers: { "Content-Type": "application/json" } });
});accept="image/*")会打开原生照片选择器或相机。在 Info.plist 中为相机和照片图库写上真实的权限说明,并删除您用不到的权限。让原生功能变得个性化的两个后端接入点。
登录后跳转到 getonesignalplayerid://;WebViewGold 会设置 window.onesignalplayerid(或启用 autoInjectVariable / AUTO_INJECT_VARIABLES,无需调用即可获得)。把它 upsert 到 profiles.push_id,再通过 edge function 调用 OneSignal REST API 发送定向通知。Firebase 和 Pushwoosh 的做法相同。
创建一个 edge function 作为 webhook 端点,校验您在 RevenueCat 中设置的 Authorization 请求头,并写入 subscriptions(user_id, entitlement, expires_at, store)。由于您的 Web 应用通过 revenuecat://purchase?external_id=USER_ID&product=PRODUCT 触发购买,webhook 中的 app_user_id 正好就是您的 Supabase 用户 ID。
高级功能检查通过 RLS 读取 subscriptions 表,绝不依赖 localStorage 中的标记。Web 版本的 Stripe webhook 写入同一张表,因此一次检查就能覆盖两个渠道(RevenueCat 指南)。
不需要。您已经在用的 Web SDK 可以直接在 WebView 中运行。唯一需要添加的是用于 Google 的 WebViewGold Social Login Helper,以及用于邮件链接的 Universal Links 设置。
能。WKWebView 和 Android WebView 都支持 websocket,因此 Realtime 订阅的表现与在浏览器中完全一样。
会,只要 Config 文件中的清除缓存选项保持关闭。会话由 supabase-js 刷新,和在 Web 上一模一样。
能让用户登录,但登录发生在 Safari 中而不是应用中。对于以登录为核心的应用来说,这已经足够让人困惑,值得花一小时完成设置。
结果相同,只是您需要投入的工作量不同。三种方式都附带审核通过保证和 7×24 小时人工支持。
$109 每个平台,一次性付费
WebViewGold 许可证:一个现成的 Xcode 或 Android Studio 项目。粘贴您的 URL,设置名称和图标,开启所需功能,构建并提交。永久免费更新。
在主页查看方案$349 每个许可证,一次性附加购买
无需 Mac、Xcode 或 Android Studio:在浏览器中完成配置,我们在云端构建两个应用,并将其交付到 App Store Connect 和 Play Console。
Cloud Builder 如何运作 试用免费演示$698 每个平台 $798
把您的 URL 和图标发给我们。我们的团队在 72 小时内完成配置、构建并交付您的应用,白标,附源码项目。两个平台共 $1,158。
Full Service 详情 服务提供方:冬季特惠价格有效期至 2026年12月31日。
App Store & Google Play 审核通过保证 – 否则 14 天内退款
想直接交给我们?Full Service:我们在 72 小时内完成配置、构建并交付,每个平台 $698 起。有疑问?通过 7×24 小时在线聊天联系我们。
退款依据我们 FAQ 中列出的条件:应用因非内容原因被 Apple 和/或 Google 拒审,并在购买后 14 天内提出申请。