第一次请求
应用在几毫秒内就启动了,但首个 HTML、CSS 和 JavaScript 仍需通过网络传输。遇到冷启动的服务器(缩容到零的托管)或较弱的网络,这需要好几秒。没有启动画面,用户和审核人员看到的就是一个空白的 WebView。
ChatGPT & Codex + 启动画面
启动后白屏两秒,是 ChatGPT & Codex 应用招来准则 2.1 审核意见或一星差评的常见原因。原生应用瞬间就能打开,而您的 Web 应用需要一点时间。WebViewGold 用品牌启动画面、原生加载指示器和下拉刷新填补这段时间,再在 Web 应用里加几行代码,就能让交接过程不留痕迹。
每个平台一次性 $109 起,或由我们的团队全程代劳,$698 起。
应用在几毫秒内就启动了,但首个 HTML、CSS 和 JavaScript 仍需通过网络传输。遇到冷启动的服务器(缩容到零的托管)或较弱的网络,这需要好几秒。没有启动画面,用户和审核人员看到的就是一个空白的 WebView。
大多数 Vibe Coding 应用都是 React 单页应用。页面“加载完成”时,根元素可能仍是空的,要等 JavaScript 渲染、首批数据到达后才有内容。如果启动画面恰好在这时消失,您就会看到一帧空白。
白色启动画面背景之后是深色应用,或深色页眉下面是白色页面背景,每次启动都会闪一下。让启动画面、HTML 和状态栏共用同一种背景色,就能消除这种闪烁。
把这段粘贴到 ChatGPT & Codex 中以实现 Web 应用端。检查结果,发布,然后在 WebViewGold 应用中测试。
这个 Web 应用运行在 WebViewGold 原生外壳中(其 User-Agent 包含 "WebViewGold"),外壳会显示启动画面,直到首页加载完成。请创建一个 pull request,完成以下内容: 1. 在 HTML 入口文件中为 html 和 body 设置内联背景色,并在根元素内添加一个 CSS 骨架屏; 2. 在会话和对话历史加载期间渲染聊天骨架屏,而不是空白屏幕; 3. 添加 lib/native-ui.ts,提供 nativeSpinner(on),仅在应用内导航到 spinneron:// 或 spinneroff://; 4. 发送消息时打开原生加载指示器,在第一个流式 token 到达或请求失败时关闭它; 5. 聊天页面挂载时用 disablepulltorefresh:// 禁用下拉刷新,卸载时用 enablepulltorefresh:// 重新启用,且绝不与加载指示器调用放在同一个 tick 中; 6. 在 AGENTS.md 中记录这些规则。 所有 OpenAI API 调用都保留在服务器上。

把 Web 应用转换成原生应用的绝佳方式!周转速度快,无需开发完整的原生应用就能把应用上架到应用商店!
在 Config.swift 和 Config.java 中花十分钟设置,然后重新构建一次。
iOS:在 Config.swift 中启用 splashScreenEnabled,并把正方形的 splash.gif(128、512 或 1024 像素)放在项目根目录。Android:在 Config.java 中启用 SPLASH_SCREEN_ACTIVATED,并把 splash.gif 放进 assets。支持 GIF 动图;动画请尽量简短。
把 iOS 的 splashscreencolor 和 Android colors.xml 中的启动画面背景色,设为与您首屏完全相同的背景色。用 scaleSplashImage 和 SCALE_SPLASH_IMAGE 调整徽标大小(占屏幕短边的百分比;0 表示隐藏)。
把 remainSplashOption(iOS)和 REMAIN_SPLASH_OPTION(Android)设为 true:启动画面会一直显示到起始 URL 加载完成,而不是在固定的 splashTimeout / SPLASH_TIMEOUT 之后切换为加载指示器。可选:用 splashMinTime / SPLASH_MIN_TIME 设置最短显示时间,用 splashFadeTime / SPLASH_FADE_OUT 设置淡出时间,单位均为毫秒。
启动之后,每当页面加载时,WebViewGold 都会显示原生指示器。在 iOS 上可以选择旋转图标或进度条(useLoadingSign、useLoadingProgressBar)以及颜色(loadingIndicatorColor);在 Android 上用 ACTIVATE_PROGRESS_BAR 切换。
在 index.html 中为 html 元素设置与启动画面颜色相同的内联背景色,并在会话检查和首批数据加载期间渲染一个轻量的骨架屏,而不是空的根元素。这样从启动画面到 Web 应用的交接就天衣无缝了。
客户端操作不算页面加载,所以原生指示器不会自动出现。在您的 ChatGPT & Codex 应用中进行 AI 生成、上传或耗时较长的后端调用时,请自己打开和关闭它;在自带手势的页面上,请关闭下拉刷新:
const inApp = navigator.userAgent.includes("WebViewGold"); // 您的自定义 User-Agent 标记
async function withNativeSpinner(task) {
if (inApp) window.location.href = "spinneron://";
try {
return await task();
} finally {
if (inApp) window.location.href = "spinneroff://";
}
}
// 用法
// const reply = await withNativeSpinner(() => fetch("/api/generate", { method: "POST", body }));
// 地图、拖放看板、轮播图: 在该页面打开期间禁用
function setPullToRefresh(enabled) {
if (inApp) window.location.href = enabled ? "enablepulltorefresh://" : "disablepulltorefresh://";
}pulltorefresh 设为 true,把 preventoverscroll 设为 false(这个手势需要回弹效果)。浅色和深色模式的颜色:pulltorefresh_loadingsigncolour_lightmode、pulltorefresh_backgroundcolour_lightmode 以及对应的 _darkmode 变体(下拉刷新文档)。ENABLE_PULL_REFRESH 设为 true。同样的 enablepulltorefresh:// 和 disablepulltorefresh:// 调用在两个平台上都有效。autoRefreshEnabled(iOS)和 AUTO_REFRESH_ENABLED(Android)会在应用回到前台时重新加载页面;含有长表单的应用请保持关闭。remainSplashOption,而首次请求又很慢,审核人员看到的正是这种情况,而空白屏幕是典型的准则 2.1 问题(如何解决准则 2.1 问题)。Apple 要求应用提供启动屏幕(launch screen),WebViewGold 的 iOS 项目已经包含。在此之上的品牌启动画面是可选的,但对于加载 Web 应用的应用来说,它是避免首页加载期间出现白屏的实用方法。
首页加载需要多久就显示多久,不要更长。remainSplashOption(iOS)和 REMAIN_SPLASH_OPTION(Android)正是这样做的;只有当加载太快导致徽标一闪而过时,才需要再加一个约一秒的最短显示时间。
页面已经加载完成,但您的单页应用还没渲染出来,或者它的背景色与启动画面颜色不同。请在 html 元素上设置内联背景色,立即渲染骨架屏,并保持启动画面颜色完全一致。
可以,两个平台上的 splash.gif 都可以是动图。请保持正方形、文件体积小,并且时长短于通常的加载时间,以免用户看到动画中途被截断。
不会自动显示:客户端路由切换和 fetch 调用都不算页面加载。耗时较长的操作请在前后使用 spinneron:// 和 spinneroff://,短操作则使用骨架屏。
结果相同,只是您需要投入的工作量不同。三种方式都附带审核通过保证和 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 天内提出申请。