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

Cursor + 截屏

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

付费课程、私密聊天、账户余额、一次性优惠券:有些页面不应该出现在群聊里。WebViewGold 可以在 Android 上禁止截屏和录屏,在 iOS 上检测截屏,然后调用您 Cursor 应用中的一个 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://
作用范围整个应用共用一个开关;文档中没有按页面设置的选项整个应用共用一个开关;文档中没有按页面设置的选项

给 Cursor 的提示词

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

给 Cursor 代理的提示词
给 Cursor agent 的提示词:集成 WebViewGold 屏幕捕获处理。在 lib/native.ts 中添加 isWebViewGold()(navigator.userAgent 包含我的自定义标记)、registerScreenCaptureHandler(cb)(赋值 window.onScreenCaptureAttempt = cb)以及 saveScreenToPhotos()(导航到 takescreenshot://)。为 window.onScreenCaptureAttempt 添加全局 TypeScript 声明。在应用启动时调用一次 registerScreenCaptureHandler,传入的处理函数只在受保护路由上显示我们现有的提示,并把路径和时间戳 POST 到一个新的 /api/capture-events 端点,该端点从会话中获取用户。在门票页面上用 saveScreenToPhotos() 添加一个“保存到相册”按钮,在应用外隐藏。为处理函数编写单元测试,并在 .cursor/rules 中注明:阻止截屏是一个原生的、对整个应用生效的设置。

在过去5年我们尝试过的所有应用平台中,WebViewGold为我们带来了有史以来最短、最高效的上市时间。我不知道为什么没有更早发现你们,但我真的非常满意。目前我们的应用在iOS App Store和Google Play商店的下载量已超过6000次,没有任何问题!

安东尼奥·达维拉 · 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 端

在每个页面加载一次(例如放在应用入口文件中)。可选的日志端点属于您技术栈的服务端:您自己的 API 路由或服务。

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 可以检查当前路由,只在敏感页面上显示提示。

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

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

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

能,只要该函数挂在 window 对象上。在组件或 ES 模块内部声明的函数不是全局的,WebViewGold 就找不到它;请在 Cursor 项目的入口文件中给 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日。

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

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

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

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