更新记录

1.0.3(2026-07-29)

发版

1.0.2(2026-07-29)

发版

1.0.1(2026-07-29)

发版

查看更多

平台兼容性

uni-app(5.13)

Vue2 Vue3 Chrome Safari app-vue app-nvue Android iOS 鸿蒙
- - - - - -
微信小程序 支付宝小程序 抖音小程序 百度小程序 快手小程序 京东小程序 鸿蒙元服务 QQ小程序 飞书小程序 小红书小程序 快应用-华为 快应用-联盟
- - - - - - - - - - - -

uni-app x(5.13)

Chrome Safari Android iOS 鸿蒙 微信小程序
- - - - - -

AI Health

ai-health 是一个面向 uni-app 与 uni-app x 的 UTS API 插件,通过 iOS HealthKit 和 Android Health Connect 访问系统健康数据。插件只在调用方明确请求并获得用户授权后工作,数据在设备本地处理。

平台要求

平台 最低版本 数据源 说明
iOS iOS 15 Apple HealthKit 需在 Apple Developer 后台为 App ID 开启 HealthKit,并重新生成描述文件
Android Android 8 / API 26 Health Connect Android 13 及以下需安装“健康数据共享”,Android 14 起由系统提供

HBuilderX 最低版本为 4.81。首次加入插件或修改原生配置后,请制作自定义基座或执行云打包。

Android 依赖固定为 Health Connect 1.1.0-beta01,以兼容 HBuilderX 5.07 云端的 compileSdk 351.1.0-beta02 及更高版本要求 compileSdk 36,在当前云打包环境中会失败。

快速开始

import {
  getHealthCapabilities,
  requestHealthAuthorization,
  queryHealthData
} from "@/uni_modules/ai-health"

const capabilities = getHealthCapabilities()
if (capabilities.available) {
  requestHealthAuthorization({
    readTypes: ["stepCount", "heartRate"],
    success: () => {
      queryHealthData({
        type: "stepCount",
        startTime: Date.now() - 24 * 60 * 60 * 1000,
        endTime: Date.now(),
        aggregation: "sum",
        success: (result) => console.log(result.aggregateValue),
        fail: (error) => console.log(error.errMsg)
      })
    },
    fail: (error) => console.log(error.errMsg)
  })
}

所有时间均为毫秒时间戳。查询默认最近 24 小时、最多 200 条,limit 取值范围为 1 到 1000。

API

  • getHealthCapabilities():同步返回当前平台、服务可用性及支持的读写类型。
  • getHealthAuthorizationStatus(type):同步返回写权限状态,0 未确定、1 拒绝、2 已授权。Android 返回对应类型任一读写权限的状态。
  • requestHealthAuthorization(options):请求指定类型的读写权限。
  • queryHealthData(options):查询明细,或使用 sumaverageminimummaximum 统计。
  • saveHealthData(options):批量写入健康记录。
  • deleteHealthData(options):删除当前 App 在时间区间内写入的指定类型记录。

iOS 出于隐私保护不会向 App 披露健康数据的读取授权状态。因此授权结果中的 iOS 读取类型表示系统授权流程已完成;实际是否有读取权限应以查询结果为准。

数据类型

iOS 支持:步数、步行跑步距离、骑行距离、心率、静息心率、呼吸频率、血压、体脂、体重、BMI、身高、去脂体重、活动/静息能量、睡眠、体温、血氧、血糖、步长、锻炼时间、最大摄氧量、HRV、游泳划水、爬楼、跑速、骑行功率/踏频和锻炼记录。

Android 支持:步数、距离、心率、体重、身高、体脂、血氧、血糖、血压、活动能量和睡眠。请先调用 getHealthCapabilities(),不要假设两个平台支持完全相同的数据类型。

血压写入时,bloodPressureSystolicvalue 是收缩压,secondaryValue 是舒张压;使用 bloodPressureDiastolic 时两者相反。睡眠的 category 使用 HealthKit/Health Connect 的阶段值;未设置时按普通睡眠处理。

上架配置

iOS

插件已包含 Info.plistUTS.entitlementsPrivacyInfo.xcprivacy 和 HealthKit 系统库声明。开发者仍需在 Apple Developer 中为宿主 App 的 Identifier 开启 HealthKit,并使用重新生成的签名描述文件。App Store Connect 隐私问卷应按宿主 App 的真实数据用途填写。

Android

插件已声明所支持类型对应的 Health Connect 权限、权限请求页和权限用途说明页。发布到 Google Play 前,宿主 App 必须提供公开隐私政策,并在 Play Console 的“健康应用”表单中声明实际使用的数据类型和用途。业务不使用的类型应从插件的 AndroidManifest.xml 和产品能力说明中删除,遵循最小权限原则。

隐私

插件不包含网络请求、广告、统计 SDK 或服务端代码,不会自行存储或上传健康数据。宿主应用对健康数据的展示、持久化、传输、账号关联和删除机制承担最终合规责任。详细说明见工程中的 docs/privacy.md

隐私、权限声明

1. 本插件需要申请的系统权限列表:

iOS 使用 HealthKit 权限;Android 使用 Health Connect 中与调用数据类型对应的读写权限。宿主应用必须提供隐私政策并仅申请业务所需权限。

2. 本插件采集的数据、发送的服务器地址、以及数据用途说明:

仅在宿主应用主动调用并获得系统授权后,在设备本地读取或写入用户选择的健康数据;插件自身不上传、不共享、不持久化健康数据。

3. 本插件是否包含广告,如包含需详细说明广告表达方式、展示频率:

无广告。

暂无用户评论。