跳至内容
WebViewGold 从 Vibe Coding 到 App Store
中文
获取 WebViewGold

Replit + 截屏

在您的 Replit 应用中防止截屏和主动保存截图

付费课程、私密聊天、账户余额、一次性优惠券:有些页面不应该出现在群聊里。WebViewGold 可以在 Android 上禁止截屏和录屏,在 iOS 上检测截屏,然后调用您 Replit 应用中的一个 JavaScript 函数,让您做出响应。这套工具也能反过来用:takescreenshot:// 可以把页面主动保存到相册,适合门票和收据。

每个平台一次性 $109 起,或由我们的团队全程代劳,$698 起。

  • 审核通过保证 – 否则 14 天内退款
  • 无需编程
  • 一次性付费,免费更新
  • 7×24 小时人工支持
  • 2014 年起德国出品 · ISO 27001

每个平台实际提供什么

功能iOSAndroid
阻止截屏和录屏无法实现:iOS 没有可以阻止截屏的官方 APIConfig.java 中的 PREVENT_SCREEN_CAPTURE = true 会阻止对应用截屏和录屏
通知 Web 应用Config.swift 中的 let preventScreenCapture = true 会检测截屏和录屏,并调用 onScreenCaptureAttempt()(名称虽然如此,文档描述的是检测)会调用 onScreenCaptureAttempt(),方便您显示自己的提示
主动把当前页面保存到相册takescreenshot://takescreenshot://
作用范围整个应用共用一个开关;文档中没有按页面设置的选项整个应用共用一个开关;文档中没有按页面设置的选项

给 Replit 的提示词

把这段粘贴到 Replit 中以实现 Web 应用端。检查结果,发布,然后在 WebViewGold 应用中测试。

粘贴到 Replit Agent 的提示词
为 WebViewGold 应用封装层添加截屏处理。前端:在 React 入口文件中定义 window.onScreenCaptureAttempt,让它显示一条简短提示(“考试题目已禁用截屏”),并发送 navigator.sendBeacon("/api/capture-events", new Blob([JSON.stringify({ path: location.pathname })], { type: "application/json" }))。后端:添加 POST /api/capture-events,从会话中读取 Replit Auth 用户,并把 user_id、path 和 created_at 插入 Postgres 中的 capture_events 表;忽略没有会话的请求。添加仅限管理员访问的 GET /api/admin/capture-events。在证书页面上添加一个“保存到相册”按钮,仅当 navigator.userAgent 包含我的 WebViewGold 自定义标记时才导航到 takescreenshot://,在浏览器中显示“下载 PDF”链接。不要自动锁定账号。

只要有一个优化良好的Web应用版本,几分钟内您就能拥有一个出色的移动应用。除此之外,客户服务非常友好且乐于助人!我只能说:推荐WebViewGold :-)

朱利安·科赫(Julian Koch) · 联合创始人 Dueldonkey · CodeCanyon

在 Web 应用中响应截屏行为

约 20 分钟,外加两个应用的重新构建。

  1. 打开设置

    iOS:Config.swift 中的 let preventScreenCapture = true。Android:Config.java 中的 PREVENT_SCREEN_CAPTURE = true。这是原生改动,因此会随下一次应用构建发布,而不是随 Web 部署生效。

  2. 让 onScreenCaptureAttempt 成为全局函数

    WebViewGold 调用的正是这个名称的函数。由 Vite、Next.js 等工具打包的代码位于模块中,因此在组件内部声明的函数不是全局的。请在每个页面都会运行的代码中显式赋值:window.onScreenCaptureAttempt = function () { … }。

  3. 显示一条平和的提示

    说明原因(“为尊重创作者,课程幻灯片受到保护”),而不是让用户退出登录。在 iOS 上,函数运行时截图已经生成,所以这条提示起的是劝阻作用,而不是阻止。

  4. 仅在确有需要时记录

    考试、文档和金融类应用可能需要审计记录(用户、页面、时间)。如果您记录这些信息,请在隐私政策中说明。

  5. 提供一种正当的保存方式

    在保存合情合理的地方(门票、收据、证书),添加一个导航到 takescreenshot:// 的“保存到相册”按钮。如果您在 Android 上同时启用了截屏阻止,请在设备上确认保存的图片不是空白的。

JavaScript 端

在每个页面加载一次(例如放在应用入口文件中)。可选的日志端点属于您技术栈的服务端:Express/Flask/FastAPI 后端,搭配 Replit Postgres 或外部数据库。

javascript
// 自定义 User-Agent 包含 "WebViewGold" (在 Config.swift / Config.java 中设置)
var IN_APP = navigator.userAgent.indexOf("WebViewGold") !== -1;

// WebViewGold 检测到截屏或录屏时调用 (iOS),
// 或在开启 PREVENT_SCREEN_CAPTURE 时检测到截屏尝试时调用 (Android)
window.onScreenCaptureAttempt = function () {
  showToast("付费课程已关闭截屏功能。"); // 您自己的 UI 辅助函数
  fetch("/api/capture-events", {
    method: "POST", keepalive: true,
    headers: { "Content-Type": "application/json" },
    body: JSON.stringify({ path: location.pathname, at: Date.now() })
  });
};

// 正当的保存方式, 例如在门票页面上
function saveTicketToPhotos() {
  if (IN_APP) { window.location.href = "takescreenshot://"; }
  else { window.print(); } // 浏览器后备方案
}

需要坦诚面对的局限

  • 没有任何防护是绝对的:任何人都可以用第二部手机拍下屏幕。请把它用来阻止随手分享,而不是作为机密数据的唯一保障。
  • 商店截图:开启阻止后,Android 也会阻止您自己截屏。请在开启之前,或使用未开启该选项的构建,截取 Play 商店详情所需的图片。参见商店截图和详情页。
  • 用户希望能截取门票、收据和确认页面。只因为一个敏感页面就禁止整个应用截屏,会让用户感到沮丧,而这会体现在商店评价中。
  • 在 iOS 上,请围绕“检测”来设计体验:一条提示、一条可选的日志记录,或在敏感页面上显示带有用户邮箱的可见水印。
  • takescreenshot:// 会保存到照片图库。iOS 会在第一次时请求用户授权,因此 Xcode 项目中的相册用途说明必须写明原因(“用于保存您的门票以便离线使用”)。

常见问题

能在 iPhone 上禁止截屏吗?

不能完全禁止。iOS 没有可以阻止截屏的官方 API。WebViewGold 会检测截屏和录屏(Config.swift 中的 preventScreenCapture),并在 Web 应用中调用 onScreenCaptureAttempt,让您做出响应。真正的阻止在 Android 上可用,即 Config.java 中的 PREVENT_SCREEN_CAPTURE。

防截屏保护会在 App Store 或 Google Play 审核中造成问题吗?

本身不会。两个商店都没有要求应用必须允许截屏,检测也不需要任何权限。如果受保护的页面在 Android 录屏中显示为黑屏,请在审核备注中说明,以免有人把它误认为 bug。

能只保护部分页面吗?

WebViewGold 文档描述的是对整个应用生效的开关,而不是按页面的设置。您能按页面控制的是响应方式:onScreenCaptureAttempt 可以检查当前路由,只在敏感页面上显示提示。

用户如何从我的 Replit 应用中保存门票?

添加一个“保存到相册”按钮,在应用内导航到 takescreenshot://。WebViewGold 会把当前 WebView 内容保存到相册,这样即使没有网络,用户到了现场也能出示门票。

onScreenCaptureAttempt 能配合 React、Vue 或 Svelte 代码使用吗?

能,只要该函数挂在 window 对象上。在组件或 ES 模块内部声明的函数不是全局的,WebViewGold 就找不到它;请在 Replit 项目的入口文件中给 window.onScreenCaptureAttempt 赋值。

让您的应用上架商店的三种方式

结果相同,只是您需要投入的工作量不同。三种方式都附带审核通过保证和 7×24 小时人工支持。

自己动手

$109 每个平台,一次性付费

WebViewGold 许可证:一个现成的 Xcode 或 Android Studio 项目。粘贴您的 URL,设置名称和图标,开启所需功能,构建并提交。永久免费更新。

在主页查看方案

Cloud Builder

$349 每个许可证,一次性附加购买

无需 Mac、Xcode 或 Android Studio:在浏览器中完成配置,我们在云端构建两个应用,并将其交付到 App Store Connect 和 Play Console。

Cloud Builder 如何运作 试用免费演示

Full Service

$698 每个平台 $798

把您的 URL 和图标发给我们。我们的团队在 72 小时内完成配置、构建并交付您的应用,白标,附源码项目。两个平台共 $1,158。

Full Service 详情 服务提供方: WeSetupYourWebViewApp

冬季特惠价格有效期至 2026年12月31日。

准备好发布您的 Replit 应用了吗?

App Store & Google Play 审核通过保证 – 否则 14 天内退款

想直接交给我们?Full Service:我们在 72 小时内完成配置、构建并交付,每个平台 $698 起。有疑问?通过 7×24 小时在线聊天联系我们。

退款依据我们 FAQ 中列出的条件:应用因非内容原因被 Apple 和/或 Google 拒审,并在购买后 14 天内提出申请。