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

Google Play 审核被拒

健康应用声明和 Health Connect 权限:如何让健康或健身 Web 应用通过 Google Play 审核

Google Play 上的每个应用都必须填写健康应用声明,包括没有任何健康功能的应用。如果您的应用会读取或写入 Health Connect 数据,Google 还会把请求的每种数据类型与一项可见功能和您的隐私政策进行核对。大多数拒审源于声明与 bundle 不一致,或者请求的数据类型多于应用实际使用的。

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

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

两项容易混淆的要求

健康应用声明是 Play Console“应用内容”页面上的一份表单。每位开发者都必须为每个应用填写它。没有健康功能的应用只需说明没有即可。有健康功能的应用需要选择所提供的类别,例如活动与健身、营养与体重管理、睡眠、压力、经期追踪、疾病管理或医疗类别。Google 会在应用审核中审查这些回答。

Health Connect 权限适用于您的应用在 Health Connect(Android 在设备上存储健康与健身数据的地方)中读取或写入数据的情况。Google 把这类数据视为个人和敏感的用户数据。在同一份健康应用表单中,您需要申报请求的每种 Health Connect 数据类型,并说明它如何让用户受益。您只能请求面向用户的功能所需的数据类型,而且商店详情中的隐私政策必须与用户从 Health Connect 中访问到的那份相同。

范围更广的健康内容和服务政策还对各类声明作出了规定。具有健康或医疗功能、但不属于受监管医疗器械的应用,需要在说明中清楚地声明它不是医疗器械,不能诊断、治疗、治愈或预防任何疾病,并且应当建议用户咨询医疗专业人员。作为医疗器械受到监管的应用必须申报这一点,并能按要求出示其批准或许可证明。

拒审通知通常怎么写

这方面的通知要么点名健康内容和服务政策,要么点名用户数据政策中的 Health Connect 要求。典型原因包括:声明缺失、不完整或与 bundle 请求的内容不符;某种请求的数据类型没有可见功能作为理由;隐私政策没有说明如何处理健康数据;或者说明中作出了医疗声明,却没有必要的免责声明。

一种常见的变体来自权限方面:bundle 中包含 Health Connect 权限,但声明却说应用没有健康功能。这通常意味着来自模板或复制项目的权限从未被移除。权限指南介绍了如何在合并后的清单中找到它们。

WebViewGold 如何与 Health Connect 通信

WebViewGold 的Health Connect API让您的 Web 应用可以通过 URL Scheme 读取和写入记录。readhealthkit://StepsRecord 读取该记录类型的今日总量,并把它作为一个以记录名命名的 JavaScript 变量注入,例如 "8421.0 steps"。writehealthkit://StepsRecord//1000 写入一个数值,并注入 WRITE_SUCCESS 或错误文本。如果 Health Connect 不可用,该变量的值为 "Health Connect not supported"。Android 14 及更高版本预装了 Health Connect,该 API 需要 Android 8.0 或更新版本。Android API 与 iOS 的HealthKit 插件相对应,因此同一个 Web 应用可以在两个平台上处理健康数据。

有两个细节对声明很重要。第一,读取返回的是您的 Web 应用发出请求那一刻的今日数值,所以 WebViewGold 集成用不到读取 30 天以前历史数据或在后台读取数据的 Health Connect 权限。第二,该 API 只对应用已请求权限的记录类型有效,而这份列表正是 Google 希望您尽量精简的。

我很高兴购买了这个应用!非常简单,文档也很棒。联系客服后,他们回复很快且非常友好,一天之内就解决了我的问题。10/10,值得推荐。

Nelis Geiger · CodeCanyon

从 Web 应用读取今日步数

基于文档中的模式:链接触发读取,注入的变量稍后即可使用。首次读取时,Android 会显示 Health Connect 权限对话框,所以请让用户在授予访问权限后再点按一次。

html
<a href="readhealthkit://StepsRecord" onclick="setTimeout(showSteps, 300)">同步今日步数</a>
<p>今日步数:<span id="steps">-</span></p>

<script>
  function showSteps() {
    // WebViewGold 会注入一个以记录类型命名的变量
    if (typeof StepsRecord !== "undefined") {
      document.getElementById("steps").textContent = StepsRecord; // 例如 "8421.0 steps"
    }
  }
</script>

记录类型、权限以及能通过审核的理由

权限省略了 android.permission.health. 前缀。只保留您的 Web 应用实际使用的行。

WebViewGold 记录Health Connect 权限点明功能的理由
StepsRecordREAD_STEPS;只有在记录步数时才需要 WRITE_STEPS在首页仪表板上显示今日步数,并标记每日目标已达成。
HeartRateRecordREAD_HEART_RATE在锻炼总结页面上显示今日心率。
WeightRecordREAD_WEIGHT、WRITE_WEIGHT让用户在进度追踪中记录今日体重,并在图表中查看。
SleepSessionRecordREAD_SLEEP在早间精力打卡旁显示今天记录的睡眠。
HydrationRecordREAD_HYDRATION、WRITE_HYDRATION通过饮水小组件添加一杯水,并显示今日总量。

修复:让声明、清单和隐私政策保持一致

按顺序完成;每一步都为下一步打基础。

  1. 确定您真正使用的记录类型

    列出您的 Web 应用中每一个调用 readhealthkit:// 或 writehealthkit:// 的页面及其使用的记录类型。这份列表就是您的范围。仍在路线图上的功能,不能成为今天就请求其数据类型的理由。

  2. 精简清单中的 Health Connect 权限

    为列表中的每种记录类型只保留一项读取或写入权限,其余的从 AndroidManifest.xml 中移除。检查 Android Studio 中的 Merged Manifest 标签页,上传后再查看 App Bundle 浏览器中列出的权限。如果出现了历史数据或后台读取权限,请移除。

  3. 填写健康应用声明

    在“应用内容”页面上,选择应用提供的健康功能。对于每种 Health Connect 数据类型,描述使用它的功能、用户看到它的页面,以及您是读取、写入还是两者兼有。“首页仪表板上的今日步数”是理由;“为了改善用户体验”则不是。

  4. 更新隐私政策

    添加一节关于健康数据的内容:哪些记录类型、读取还是写入、出于什么目的、是否在您的服务器上存储副本,以及这些数据不会被出售或用于广告。在 Play Console、应用内和 Health Connect 链接中使用同一个 URL;隐私政策链接指南介绍了 URL 规则。

  5. 修改说明

    删除您无法用医疗器械许可证明支持的诊断或治疗声明;如果应用具有健康或医疗功能,请加上“不是医疗器械”的免责声明。误导性声明指南中有一个改写用的提示词。

  6. 先说明再请求,然后重新提交

    在第一次调用 readhealthkit:// 之前,在 Web 应用中显示一个简短的页面,说明您将读取什么以及原因,这样系统对话框就不会突然冒出来。在“应用访问权限”中添加一个带示例数据的演示账号,在数据安全表单中列出健康与健身数据,然后重新提交。

Health Connect 拒审的回复模板

把每种数据类型对应到一个页面。审核人员会把这份列表与 bundle 进行比对,所以它必须与 AndroidManifest.xml 完全一致。模板保留英文,因为 Google 审核人员阅读的是英文。

粘贴到回复或申诉表单中并按需调整
Hello Google Play team,

Thank you for reviewing [app name] ([package name]). We have updated the health apps declaration and the app so that every Health Connect data type is tied to a visible feature:

- Steps (read): shown on the Home dashboard as today's step count and used for the daily goal badge.
- Weight (read and write): the user logs today's weight in Progress > Log weight and sees it in the chart.
[add one line per remaining data type]

We removed the following permissions that the app did not need: [list].
Before the Health Connect permission dialog appears, the app explains what is read and why ([screen name]).
Our privacy policy ([URL]) contains a section on health data and is the same link shown in Health Connect.
The app is not a medical device; the description now contains the corresponding disclaimer.

Demo account with sample data: [username] / [password].

Kind regards,
[name]

健康应用检查清单

  • 已填写健康应用声明,即使应用没有健康功能也已填写。
  • 清单文件中的每种 Health Connect 数据类型都出现在声明中,并附有针对具体功能的理由,反之亦然。
  • 除非某项功能确实需要,否则没有历史数据或后台读取权限。
  • 隐私政策涵盖了健康数据,并在 Play Console、应用和 Health Connect 中使用同一个 URL。
  • 说明中没有缺乏依据的医疗声明;在需要的地方附有免责声明。
  • 数据安全表单列出了应用处理的健康与健身数据。
  • “应用访问权限”中有一个带数据的演示账号,审核人员可以看到每项健康功能。

常见问题

我的应用与健康毫无关系。还需要健康应用声明吗?

需要。所有开发者都要为自己的应用填写这份表单。如果您的应用没有健康功能,选择相应的选项并提交即可;只需一分钟。

使用 Health Connect 需要单独的审批吗?

访问权限会作为常规应用审核的一部分,通过健康应用声明进行审查。Google 以前有一份单独的申请表;在那里申报的数据类型必须在 2025 年初迁移到 Play Console 的声明中。

WebViewGold 能读取 Health Connect 的历史数据吗,例如过去 90 天?

文档中的 API 返回的是某种记录类型的今日总量。更长的历史数据不在其范围内,所以不要为 WebViewGold 集成请求历史数据权限。

同一个 Web 应用能在 iOS 上配合 Apple 健康使用吗?

WebViewGold for iOS 有一个 HealthKit 插件,Android 的 Health Connect API 与它相对应。它通过 Config.swift 中的插件 token 和 HealthKit 能力来启用,而 App Store 有自己的健康数据规则。

我可以把 Health Connect 数据用于广告或分析吗?

不要这样做。Health Connect 数据是个人和敏感的用户数据,受到额外限制,出售或将其用于广告都不是允许的用途。请只把它用于您已声明的面向用户的功能。

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

结果相同,只是您需要投入的工作量不同。三种方式都附带审核通过保证和 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日。

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

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

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

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