读取数值
导航到 readhealthkit:// 加上一个类型:iOS 上是 Apple 标识符,例如 HKQuantityTypeIdentifierStepCount;Android 上是记录名称,例如 StepsRecord。结果会以同名 JavaScript 变量的形式注入,内容是“数值加单位”的字符串(例如 "8421.0 steps")。
v0 + 健康数据
用 v0 构建的健身追踪、习惯养成和健康教练类应用,可以直接显示用户真实的步数、心率或体重,而不必让用户手动输入。WebViewGold 用同样的两个 URL scheme,在 iOS 上读写 Apple 健康(HealthKit),在 Android 上读写 Health Connect。代码是简单的部分;健康数据的商店规则才最值得您花心思。
每个平台一次性 $109 起,或由我们的团队全程代劳,$698 起。
导航到 readhealthkit:// 加上一个类型:iOS 上是 Apple 标识符,例如 HKQuantityTypeIdentifierStepCount;Android 上是记录名称,例如 StepsRecord。结果会以同名 JavaScript 变量的形式注入,内容是“数值加单位”的字符串(例如 "8421.0 steps")。
writehealthkit://Identifier//Value 会保存一个数值,例如 iOS 上的 writehealthkit://HKQuantityTypeIdentifierStepCount//100 或 Android 上的 writehealthkit://StepsRecord//1000。在 Android 上,该变量随后会显示 WRITE_SUCCESS 或错误信息。
iOS:HealthKit 是 WebViewGold 的一个插件,通过在 HealthKitEnabled(Config.swift)中填入插件令牌并添加 HealthKit capability 来启用。Android:Health Connect 需要 Android 8.0 或更高版本,已内置于 Android 14 及以上版本,返回的是当天的总量,在不可用的设备上会注入 "Health Connect not supported"。
把这段粘贴到 v0 中以实现 Web 应用端。检查结果,发布,然后在 WebViewGold 应用中测试。
为这个 Next.js 应用添加适用于 WebViewGold 应用封装层的 HealthKit 和 Health Connect 支持。1) 创建 lib/health.ts(仅客户端),提供 readHealth(kind):当 navigator.userAgent 包含 WebViewGold-iOS 时,把步数和心率映射为 HKQuantityTypeIdentifierStepCount 和 HKQuantityTypeIdentifierHeartRate;包含 WebViewGold-Android 时,映射为 StepsRecord 和 HeartRateRecord。2) readHealth 先清空 window[key],导航到 "readhealthkit://" + key,并轮询 window[key] 最多 5 秒,每次只执行一个读取。3) 构建一个客户端组件 HealthCard,显示数值及其来源,在浏览器中回退为手动输入。4) 添加一个 Server Action saveDailySteps(steps),检查会话,并按每个用户每天一行执行 upsert。5) 以 Cache-Control: private, no-store 发送健康历史数据。6) 把健康页面排除在分析事件之外。

在过去5年我们尝试过的所有应用平台中,WebViewGold为我们带来了有史以来最短、最高效的上市时间。我不知道为什么没有更早发现你们,但我真的非常满意。目前我们的应用在iOS App Store和Google Play商店的下载量已超过6000次,没有任何问题!
预留一天时间,包括商店的申报材料。
步行挑战用步数,教练计划用体重,饮水追踪用饮水量。两个商店都要求为每个申请的类型说明理由,所以不要“为以后”申请所有类型。
通过 iOS 文档中的联系地址申请插件令牌,在 Config.swift 中设置 HealthKitEnabled,在 Xcode 中添加 HealthKit capability,并在 Info.plist 中写好两条用途说明:Privacy - Health Share Usage Description 和 Privacy - Health Update Usage Description。
Health Connect 按记录类型授予访问权限,应用只能读写它申请过的类型。检查 Android 项目清单文件中的健康权限,只保留您用到的,并在 Play Console 中准备好健康应用声明。
设置带有不同标记的自定义 User-Agent,例如一个以 WebViewGold-iOS 结尾(useragent_iphone、useragent_ipad),另一个以 WebViewGold-Android 结尾(USER_AGENT)。这样您的代码就能选用 HealthKit 标识符或 Health Connect 记录名称。
只在应用内触发读取,稍等片刻获取注入的变量,然后显示数值并清楚标明来源(“来自 Apple 健康”)。在 iOS 上,多次读取要依次执行,不要放在同一个脚本周期里。在浏览器中,提供手动输入。
只写入用户实际产生或输入的数值,例如一次已记录的步行。把估算值或测试数据写入 Apple 健康违反准则 5.1.3(ii)。
一个辅助函数,两种类型名称。您决定保留的数值发送到技术栈的服务端:Next.js 路由处理程序和 Server Actions,通过 Neon 或 Supabase 使用 Postgres。
// 自定义 User-Agent: "... WebViewGold-iOS" (Config.swift), "... WebViewGold-Android" (Config.java)
var ua = navigator.userAgent;
var IN_APP = ua.indexOf("WebViewGold") !== -1;
var IS_IOS_APP = ua.indexOf("WebViewGold-iOS") !== -1;
function readSteps(callback) {
if (!IN_APP) { callback(null); return; } // 浏览器: 手动输入
var key = IS_IOS_APP ? "HKQuantityTypeIdentifierStepCount" : "StepsRecord";
window[key] = undefined;
window.location.href = "readhealthkit://" + key;
var tries = 0;
var timer = setInterval(function () {
var v = window[key];
if (v !== undefined || ++tries > 20) { // 最多等待约 5 秒
clearInterval(timer);
if (v === "Health Connect not supported") { v = undefined; }
callback(v === undefined ? null : String(v)); // 例如 "8421.0 steps"
}
}, 250);
}健康数据是两个商店中最敏感的类别。较早的文章会引用旧版 App Store 审核准则的第 27 节;这些 HealthKit 规则现在主要位于 2.5.1 和 5.1.3。提交前请阅读最新文本。
HealthKit 应当用于健康和健身目的并与“健康”App 集成,并且应在应用描述中注明这一集成。
健康数据不得用于广告、营销或基于使用情况的数据挖掘,也不得为此披露给第三方。请披露您收集的具体健康数据。
不要向 HealthKit 写入虚假或不准确的数据,也不要把个人健康信息存储在 iCloud 中。
与第三方共享个人数据(包括第三方 AI 服务)之前,需要清楚披露并获得用户的明确许可。
使用 Health Connect 的应用需要在 Play Console 中填写健康应用声明,并为每种数据类型说明理由。访问权限按包名审核,数据类型有变更时需要重新声明。
商店详情中的隐私政策必须与用户在 Health Connect 中通过隐私链接打开的是同一份,并且必须说明您如何处理健康数据。
在 Safari 中不能:HealthKit 没有 Web API。但在原生应用中可以。WebViewGold 在收到 readhealthkit:// 调用后以原生方式读取数值,并把它作为 JavaScript 变量注入 Web 应用。
URL scheme 是相同的(readhealthkit:// 和 writehealthkit://),只有类型名称不同:iOS 上是 HKQuantityTypeIdentifierStepCount 这样的 HealthKit 标识符,Android 上是 StepsRecord 这样的记录名称。在一个辅助函数中做好映射即可。
只要健康和健身是应用中真实的组成部分,就不会。被拒的原因通常是:在健康和健身之外使用 HealthKit、把健康数据用于广告、向“健康”写入虚假数据,以及没有解释清楚的集成。请在应用描述中提到 Apple 健康,并在界面中清楚展示这一集成。
最好哪里都不存:读取、显示、丢弃。如果某个功能需要历史记录,就只存储它需要的内容(例如每天一个总数),按用户隔离保护,在隐私政策中说明,并在删除账号时一并删除。
它需要 Android 8.0 或更高版本。Android 14 及以上版本已内置;在较旧的版本上,用户需要安装 Health Connect 应用。在不可用的设备上,WebViewGold 会注入 "Health Connect not supported",所以请保留手动输入作为后备。
结果相同,只是您需要投入的工作量不同。三种方式都附带审核通过保证和 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 天内提出申请。