ساخت APK رایگان

API پل جاوااسکریپت

Health Connect

خواندن و نوشتن گام‌ها، مسافت، کالری، ضربان قلب، خواب، وزن و ورزش از طریق Health Connect اندروید، دقیقاً برای انواعی که ساخت تیک زده است.

AppMint.health کمک‌کننده#

AppMint.health.isAvailable() / requestPermissions() / read() / write() / openHealthConnect()

نمونه

داده‌های سلامت کاربر را از طریق Health Connect می‌خواند و می‌نویسد: گام‌ها، مسافت، کالری فعال، ضربان قلب، خواب، وزن و جلسه‌های ورزش. در مرحله دسترسی ویزارد داده‌های سلامت (Health Connect) را روشن کنید و انواع و اینکه اپلیکیشن هرکدام را می‌خواند یا می‌نویسد تیک بزنید - فقط همان‌ها قابل درخواست هستند.

خروجی: هر متد یک Promise برمی‌گرداند. isAvailable() → {ok: true, available, status, read, write} (status: available، not_installed، update_required، unsupported = اندروید پایین‌تر از ۸.۰، disabled = گزینه خاموش). بقیه → {ok: true, …} یا {ok: false, code, message} با code disabled، unsupported، not_installed، update_required، not_declared (نوع در ویزارد تیک نخورده)، permission (کاربر مجوز نداده است)، bad-input، blocked (صفحه‌ای از سایت دیگر)، failed. نیازمندی: گزینه ویزارد، اندروید ۸.۰ به بالا، و Health Connect (در اندروید ۱۴ به بالا داخلی است، پیش از آن اپلیکیشنی از Play).

انواع: steps، distance، calories، heartRate، sleep، weight، exercise. زمان‌ها میلی‌ثانیه (Date.now())، شیءهای Date یا رشته‌های ISO هستند؛ پاسخ‌ها از رشته‌های ISO استفاده می‌کنند.

بررسی کنید، سپس درخواست دهید:

async function connectHealth() {
  if (!(window.AppMint && AppMint.health)) return false;          // browser or option off
  var s = await AppMint.health.isAvailable();
  if (s.status === 'not_installed') { await AppMint.health.openHealthConnect(); return false; }
  if (!s.available) return false;
  var r = await AppMint.health.requestPermissions({ read: ['steps', 'heartRate'], write: ['weight'] });
  return r.ok && r.denied.read.length === 0;
}

گام‌های امروز (مجموع‌ها با aggregate: true، خود رکوردها بدون آن):

async function stepsToday() {
  var start = new Date(); start.setHours(0, 0, 0, 0);
  var r = await AppMint.health.read('steps', { start: start, end: new Date(), aggregate: true });
  if (!r.ok) { console.warn(r.code, r.message); return 0; }
  return r.aggregate.count;
}

async function lastNightHeartRate() {
  var end = Date.now(), start = end - 12 * 3600 * 1000;
  var r = await AppMint.health.read('heartRate', { start: start, end: end });
  // r.records = [{start, end, id, samples: [{time, bpm}]}]
  return r.ok ? r.records.flatMap(function (x) { return x.samples; }) : [];
}

نوشتن - یک رکورد یا یک آرایه:

await AppMint.health.write('weight', { time: Date.now(), kilograms: 72.4 });
await AppMint.health.write('exercise', [{
  start: Date.now() - 45 * 60000, end: Date.now(), exerciseType: 'running', title: 'Evening run'
}]);
await AppMint.health.write('steps', { start: Date.now() - 3600000, end: Date.now(), count: 4200 });

فیلدهای رکورد: steps {start, end, count} · distance {start, end, meters} · calories {start, end, kilocalories} · heartRate {start, end, samples: [{time, bpm}]} · sleep {start, end, title?, stages?: [{start, end, stage}]} (awake، sleeping، out_of_bed، light، deep، rem) · weight {time, kilograms} · exercise {start, end, exerciseType, title?} (نام‌های Health Connect مانند running، walking، biking، swimming_pool، yoga، strength_training، other_workout). تجمیع‌ها: steps {count}، distance {meters}، calories {kilocalories}، heartRate {avg, min, max}، sleep / exercise {minutes}، weight {avg, min, max} (کیلوگرم).

نکته‌ها: Health Connect سیاست حفظ حریم خصوصی شما را از صفحه مجوزش نشان می‌دهد - نشانی مرحله پایان یا سیاست تولیدشده. پیش از انتشار در Google Play، در Play Console بخش App content → Health apps را با همان انواع داده و دلیل نیاز اپلیکیشن به هر کدام پر کنید؛ Play مجوزهای سلامت را بررسی می‌کند. Health Connect به اپلیکیشن تاریخچه ۳۰ روز پیش از اولین اعطای مجوز را می‌دهد. متدهای خام پشت آن (healthIsAvailable، healthRequestPermissions، healthRead، healthWrite، healthOpen) متن JSON و یک شناسه فراخوانی می‌گیرند - از کمکی استفاده کنید.

healthIsAvailable پل#

window.WebToApk.healthIsAvailable(callbackId: String)

وضعیت Health Connect برای این اپلیکیشن؛ [callbackId] را با `{available, status, read, write}` پاسخ می‌دهد.

نمونه

همراه با AppMint.health مستند شده - نمونهٔ آنجا این یکی را هم نشان می‌دهد.

داده‌های سلامت کاربر را از طریق Health Connect می‌خواند و می‌نویسد: گام‌ها، مسافت، کالری فعال، ضربان قلب، خواب، وزن و جلسه‌های ورزش. در مرحله دسترسی ویزارد داده‌های سلامت (Health Connect) را روشن کنید و انواع و اینکه اپلیکیشن هرکدام را می‌خواند یا می‌نویسد تیک بزنید - فقط همان‌ها قابل درخواست هستند.

خروجی: هر متد یک Promise برمی‌گرداند. isAvailable() → {ok: true, available, status, read, write} (status: available، not_installed، update_required، unsupported = اندروید پایین‌تر از ۸.۰، disabled = گزینه خاموش). بقیه → {ok: true, …} یا {ok: false, code, message} با code disabled، unsupported، not_installed، update_required، not_declared (نوع در ویزارد تیک نخورده)، permission (کاربر مجوز نداده است)، bad-input، blocked (صفحه‌ای از سایت دیگر)، failed. نیازمندی: گزینه ویزارد، اندروید ۸.۰ به بالا، و Health Connect (در اندروید ۱۴ به بالا داخلی است، پیش از آن اپلیکیشنی از Play).

انواع: steps، distance، calories، heartRate، sleep، weight، exercise. زمان‌ها میلی‌ثانیه (Date.now())، شیءهای Date یا رشته‌های ISO هستند؛ پاسخ‌ها از رشته‌های ISO استفاده می‌کنند.

بررسی کنید، سپس درخواست دهید:

async function connectHealth() {
  if (!(window.AppMint && AppMint.health)) return false;          // browser or option off
  var s = await AppMint.health.isAvailable();
  if (s.status === 'not_installed') { await AppMint.health.openHealthConnect(); return false; }
  if (!s.available) return false;
  var r = await AppMint.health.requestPermissions({ read: ['steps', 'heartRate'], write: ['weight'] });
  return r.ok && r.denied.read.length === 0;
}

گام‌های امروز (مجموع‌ها با aggregate: true، خود رکوردها بدون آن):

async function stepsToday() {
  var start = new Date(); start.setHours(0, 0, 0, 0);
  var r = await AppMint.health.read('steps', { start: start, end: new Date(), aggregate: true });
  if (!r.ok) { console.warn(r.code, r.message); return 0; }
  return r.aggregate.count;
}

async function lastNightHeartRate() {
  var end = Date.now(), start = end - 12 * 3600 * 1000;
  var r = await AppMint.health.read('heartRate', { start: start, end: end });
  // r.records = [{start, end, id, samples: [{time, bpm}]}]
  return r.ok ? r.records.flatMap(function (x) { return x.samples; }) : [];
}

نوشتن - یک رکورد یا یک آرایه:

await AppMint.health.write('weight', { time: Date.now(), kilograms: 72.4 });
await AppMint.health.write('exercise', [{
  start: Date.now() - 45 * 60000, end: Date.now(), exerciseType: 'running', title: 'Evening run'
}]);
await AppMint.health.write('steps', { start: Date.now() - 3600000, end: Date.now(), count: 4200 });

فیلدهای رکورد: steps {start, end, count} · distance {start, end, meters} · calories {start, end, kilocalories} · heartRate {start, end, samples: [{time, bpm}]} · sleep {start, end, title?, stages?: [{start, end, stage}]} (awake، sleeping، out_of_bed، light، deep، rem) · weight {time, kilograms} · exercise {start, end, exerciseType, title?} (نام‌های Health Connect مانند running، walking، biking، swimming_pool، yoga، strength_training، other_workout). تجمیع‌ها: steps {count}، distance {meters}، calories {kilocalories}، heartRate {avg, min, max}، sleep / exercise {minutes}، weight {avg, min, max} (کیلوگرم).

نکته‌ها: Health Connect سیاست حفظ حریم خصوصی شما را از صفحه مجوزش نشان می‌دهد - نشانی مرحله پایان یا سیاست تولیدشده. پیش از انتشار در Google Play، در Play Console بخش App content → Health apps را با همان انواع داده و دلیل نیاز اپلیکیشن به هر کدام پر کنید؛ Play مجوزهای سلامت را بررسی می‌کند. Health Connect به اپلیکیشن تاریخچه ۳۰ روز پیش از اولین اعطای مجوز را می‌دهد. متدهای خام پشت آن (healthIsAvailable، healthRequestPermissions، healthRead، healthWrite، healthOpen) متن JSON و یک شناسه فراخوانی می‌گیرند - از کمکی استفاده کنید.

healthOpen پل#

window.WebToApk.healthOpen(callbackId: String)

Health Connect را باز می‌کند، یا اگر نصب نباشد صفحه آن را در Play Store باز می‌کند.

نمونه

همراه با AppMint.health مستند شده - نمونهٔ آنجا این یکی را هم نشان می‌دهد.

داده‌های سلامت کاربر را از طریق Health Connect می‌خواند و می‌نویسد: گام‌ها، مسافت، کالری فعال، ضربان قلب، خواب، وزن و جلسه‌های ورزش. در مرحله دسترسی ویزارد داده‌های سلامت (Health Connect) را روشن کنید و انواع و اینکه اپلیکیشن هرکدام را می‌خواند یا می‌نویسد تیک بزنید - فقط همان‌ها قابل درخواست هستند.

خروجی: هر متد یک Promise برمی‌گرداند. isAvailable() → {ok: true, available, status, read, write} (status: available، not_installed، update_required، unsupported = اندروید پایین‌تر از ۸.۰، disabled = گزینه خاموش). بقیه → {ok: true, …} یا {ok: false, code, message} با code disabled، unsupported، not_installed، update_required، not_declared (نوع در ویزارد تیک نخورده)، permission (کاربر مجوز نداده است)، bad-input، blocked (صفحه‌ای از سایت دیگر)، failed. نیازمندی: گزینه ویزارد، اندروید ۸.۰ به بالا، و Health Connect (در اندروید ۱۴ به بالا داخلی است، پیش از آن اپلیکیشنی از Play).

انواع: steps، distance، calories، heartRate، sleep، weight، exercise. زمان‌ها میلی‌ثانیه (Date.now())، شیءهای Date یا رشته‌های ISO هستند؛ پاسخ‌ها از رشته‌های ISO استفاده می‌کنند.

بررسی کنید، سپس درخواست دهید:

async function connectHealth() {
  if (!(window.AppMint && AppMint.health)) return false;          // browser or option off
  var s = await AppMint.health.isAvailable();
  if (s.status === 'not_installed') { await AppMint.health.openHealthConnect(); return false; }
  if (!s.available) return false;
  var r = await AppMint.health.requestPermissions({ read: ['steps', 'heartRate'], write: ['weight'] });
  return r.ok && r.denied.read.length === 0;
}

گام‌های امروز (مجموع‌ها با aggregate: true، خود رکوردها بدون آن):

async function stepsToday() {
  var start = new Date(); start.setHours(0, 0, 0, 0);
  var r = await AppMint.health.read('steps', { start: start, end: new Date(), aggregate: true });
  if (!r.ok) { console.warn(r.code, r.message); return 0; }
  return r.aggregate.count;
}

async function lastNightHeartRate() {
  var end = Date.now(), start = end - 12 * 3600 * 1000;
  var r = await AppMint.health.read('heartRate', { start: start, end: end });
  // r.records = [{start, end, id, samples: [{time, bpm}]}]
  return r.ok ? r.records.flatMap(function (x) { return x.samples; }) : [];
}

نوشتن - یک رکورد یا یک آرایه:

await AppMint.health.write('weight', { time: Date.now(), kilograms: 72.4 });
await AppMint.health.write('exercise', [{
  start: Date.now() - 45 * 60000, end: Date.now(), exerciseType: 'running', title: 'Evening run'
}]);
await AppMint.health.write('steps', { start: Date.now() - 3600000, end: Date.now(), count: 4200 });

فیلدهای رکورد: steps {start, end, count} · distance {start, end, meters} · calories {start, end, kilocalories} · heartRate {start, end, samples: [{time, bpm}]} · sleep {start, end, title?, stages?: [{start, end, stage}]} (awake، sleeping، out_of_bed، light، deep، rem) · weight {time, kilograms} · exercise {start, end, exerciseType, title?} (نام‌های Health Connect مانند running، walking، biking، swimming_pool، yoga، strength_training، other_workout). تجمیع‌ها: steps {count}، distance {meters}، calories {kilocalories}، heartRate {avg, min, max}، sleep / exercise {minutes}، weight {avg, min, max} (کیلوگرم).

نکته‌ها: Health Connect سیاست حفظ حریم خصوصی شما را از صفحه مجوزش نشان می‌دهد - نشانی مرحله پایان یا سیاست تولیدشده. پیش از انتشار در Google Play، در Play Console بخش App content → Health apps را با همان انواع داده و دلیل نیاز اپلیکیشن به هر کدام پر کنید؛ Play مجوزهای سلامت را بررسی می‌کند. Health Connect به اپلیکیشن تاریخچه ۳۰ روز پیش از اولین اعطای مجوز را می‌دهد. متدهای خام پشت آن (healthIsAvailable، healthRequestPermissions، healthRead، healthWrite، healthOpen) متن JSON و یک شناسه فراخوانی می‌گیرند - از کمکی استفاده کنید.

healthRead پل#

window.WebToApk.healthRead(type: String, optionsJson: String, callbackId: String)

رکوردهای [type] (یا مجموع‌ها با `aggregate:true`) را بین `start` و `end` در [optionsJson] می‌خواند.

نمونه

همراه با AppMint.health مستند شده - نمونهٔ آنجا این یکی را هم نشان می‌دهد.

داده‌های سلامت کاربر را از طریق Health Connect می‌خواند و می‌نویسد: گام‌ها، مسافت، کالری فعال، ضربان قلب، خواب، وزن و جلسه‌های ورزش. در مرحله دسترسی ویزارد داده‌های سلامت (Health Connect) را روشن کنید و انواع و اینکه اپلیکیشن هرکدام را می‌خواند یا می‌نویسد تیک بزنید - فقط همان‌ها قابل درخواست هستند.

خروجی: هر متد یک Promise برمی‌گرداند. isAvailable() → {ok: true, available, status, read, write} (status: available، not_installed، update_required، unsupported = اندروید پایین‌تر از ۸.۰، disabled = گزینه خاموش). بقیه → {ok: true, …} یا {ok: false, code, message} با code disabled، unsupported، not_installed، update_required، not_declared (نوع در ویزارد تیک نخورده)، permission (کاربر مجوز نداده است)، bad-input، blocked (صفحه‌ای از سایت دیگر)، failed. نیازمندی: گزینه ویزارد، اندروید ۸.۰ به بالا، و Health Connect (در اندروید ۱۴ به بالا داخلی است، پیش از آن اپلیکیشنی از Play).

انواع: steps، distance، calories، heartRate، sleep، weight، exercise. زمان‌ها میلی‌ثانیه (Date.now())، شیءهای Date یا رشته‌های ISO هستند؛ پاسخ‌ها از رشته‌های ISO استفاده می‌کنند.

بررسی کنید، سپس درخواست دهید:

async function connectHealth() {
  if (!(window.AppMint && AppMint.health)) return false;          // browser or option off
  var s = await AppMint.health.isAvailable();
  if (s.status === 'not_installed') { await AppMint.health.openHealthConnect(); return false; }
  if (!s.available) return false;
  var r = await AppMint.health.requestPermissions({ read: ['steps', 'heartRate'], write: ['weight'] });
  return r.ok && r.denied.read.length === 0;
}

گام‌های امروز (مجموع‌ها با aggregate: true، خود رکوردها بدون آن):

async function stepsToday() {
  var start = new Date(); start.setHours(0, 0, 0, 0);
  var r = await AppMint.health.read('steps', { start: start, end: new Date(), aggregate: true });
  if (!r.ok) { console.warn(r.code, r.message); return 0; }
  return r.aggregate.count;
}

async function lastNightHeartRate() {
  var end = Date.now(), start = end - 12 * 3600 * 1000;
  var r = await AppMint.health.read('heartRate', { start: start, end: end });
  // r.records = [{start, end, id, samples: [{time, bpm}]}]
  return r.ok ? r.records.flatMap(function (x) { return x.samples; }) : [];
}

نوشتن - یک رکورد یا یک آرایه:

await AppMint.health.write('weight', { time: Date.now(), kilograms: 72.4 });
await AppMint.health.write('exercise', [{
  start: Date.now() - 45 * 60000, end: Date.now(), exerciseType: 'running', title: 'Evening run'
}]);
await AppMint.health.write('steps', { start: Date.now() - 3600000, end: Date.now(), count: 4200 });

فیلدهای رکورد: steps {start, end, count} · distance {start, end, meters} · calories {start, end, kilocalories} · heartRate {start, end, samples: [{time, bpm}]} · sleep {start, end, title?, stages?: [{start, end, stage}]} (awake، sleeping، out_of_bed، light، deep، rem) · weight {time, kilograms} · exercise {start, end, exerciseType, title?} (نام‌های Health Connect مانند running، walking، biking، swimming_pool، yoga، strength_training، other_workout). تجمیع‌ها: steps {count}، distance {meters}، calories {kilocalories}، heartRate {avg, min, max}، sleep / exercise {minutes}، weight {avg, min, max} (کیلوگرم).

نکته‌ها: Health Connect سیاست حفظ حریم خصوصی شما را از صفحه مجوزش نشان می‌دهد - نشانی مرحله پایان یا سیاست تولیدشده. پیش از انتشار در Google Play، در Play Console بخش App content → Health apps را با همان انواع داده و دلیل نیاز اپلیکیشن به هر کدام پر کنید؛ Play مجوزهای سلامت را بررسی می‌کند. Health Connect به اپلیکیشن تاریخچه ۳۰ روز پیش از اولین اعطای مجوز را می‌دهد. متدهای خام پشت آن (healthIsAvailable، healthRequestPermissions، healthRead، healthWrite، healthOpen) متن JSON و یک شناسه فراخوانی می‌گیرند - از کمکی استفاده کنید.

healthRequestPermissions پل#

window.WebToApk.healthRequestPermissions(requestJson: String, callbackId: String)

صفحه مجوز Health Connect را برای [requestJson] `{read:[…], write:[…]}` باز می‌کند؛ با `{granted, denied}` پاسخ می‌دهد.

نمونه

همراه با AppMint.health مستند شده - نمونهٔ آنجا این یکی را هم نشان می‌دهد.

داده‌های سلامت کاربر را از طریق Health Connect می‌خواند و می‌نویسد: گام‌ها، مسافت، کالری فعال، ضربان قلب، خواب، وزن و جلسه‌های ورزش. در مرحله دسترسی ویزارد داده‌های سلامت (Health Connect) را روشن کنید و انواع و اینکه اپلیکیشن هرکدام را می‌خواند یا می‌نویسد تیک بزنید - فقط همان‌ها قابل درخواست هستند.

خروجی: هر متد یک Promise برمی‌گرداند. isAvailable() → {ok: true, available, status, read, write} (status: available، not_installed، update_required، unsupported = اندروید پایین‌تر از ۸.۰، disabled = گزینه خاموش). بقیه → {ok: true, …} یا {ok: false, code, message} با code disabled، unsupported، not_installed، update_required، not_declared (نوع در ویزارد تیک نخورده)، permission (کاربر مجوز نداده است)، bad-input، blocked (صفحه‌ای از سایت دیگر)، failed. نیازمندی: گزینه ویزارد، اندروید ۸.۰ به بالا، و Health Connect (در اندروید ۱۴ به بالا داخلی است، پیش از آن اپلیکیشنی از Play).

انواع: steps، distance، calories، heartRate، sleep، weight، exercise. زمان‌ها میلی‌ثانیه (Date.now())، شیءهای Date یا رشته‌های ISO هستند؛ پاسخ‌ها از رشته‌های ISO استفاده می‌کنند.

بررسی کنید، سپس درخواست دهید:

async function connectHealth() {
  if (!(window.AppMint && AppMint.health)) return false;          // browser or option off
  var s = await AppMint.health.isAvailable();
  if (s.status === 'not_installed') { await AppMint.health.openHealthConnect(); return false; }
  if (!s.available) return false;
  var r = await AppMint.health.requestPermissions({ read: ['steps', 'heartRate'], write: ['weight'] });
  return r.ok && r.denied.read.length === 0;
}

گام‌های امروز (مجموع‌ها با aggregate: true، خود رکوردها بدون آن):

async function stepsToday() {
  var start = new Date(); start.setHours(0, 0, 0, 0);
  var r = await AppMint.health.read('steps', { start: start, end: new Date(), aggregate: true });
  if (!r.ok) { console.warn(r.code, r.message); return 0; }
  return r.aggregate.count;
}

async function lastNightHeartRate() {
  var end = Date.now(), start = end - 12 * 3600 * 1000;
  var r = await AppMint.health.read('heartRate', { start: start, end: end });
  // r.records = [{start, end, id, samples: [{time, bpm}]}]
  return r.ok ? r.records.flatMap(function (x) { return x.samples; }) : [];
}

نوشتن - یک رکورد یا یک آرایه:

await AppMint.health.write('weight', { time: Date.now(), kilograms: 72.4 });
await AppMint.health.write('exercise', [{
  start: Date.now() - 45 * 60000, end: Date.now(), exerciseType: 'running', title: 'Evening run'
}]);
await AppMint.health.write('steps', { start: Date.now() - 3600000, end: Date.now(), count: 4200 });

فیلدهای رکورد: steps {start, end, count} · distance {start, end, meters} · calories {start, end, kilocalories} · heartRate {start, end, samples: [{time, bpm}]} · sleep {start, end, title?, stages?: [{start, end, stage}]} (awake، sleeping، out_of_bed، light، deep، rem) · weight {time, kilograms} · exercise {start, end, exerciseType, title?} (نام‌های Health Connect مانند running، walking، biking، swimming_pool، yoga، strength_training، other_workout). تجمیع‌ها: steps {count}، distance {meters}، calories {kilocalories}، heartRate {avg, min, max}، sleep / exercise {minutes}، weight {avg, min, max} (کیلوگرم).

نکته‌ها: Health Connect سیاست حفظ حریم خصوصی شما را از صفحه مجوزش نشان می‌دهد - نشانی مرحله پایان یا سیاست تولیدشده. پیش از انتشار در Google Play، در Play Console بخش App content → Health apps را با همان انواع داده و دلیل نیاز اپلیکیشن به هر کدام پر کنید؛ Play مجوزهای سلامت را بررسی می‌کند. Health Connect به اپلیکیشن تاریخچه ۳۰ روز پیش از اولین اعطای مجوز را می‌دهد. متدهای خام پشت آن (healthIsAvailable، healthRequestPermissions، healthRead، healthWrite، healthOpen) متن JSON و یک شناسه فراخوانی می‌گیرند - از کمکی استفاده کنید.

healthWrite پل#

window.WebToApk.healthWrite(type: String, recordsJson: String, callbackId: String)

رکوردهای [recordsJson] (یک آرایه) را به‌عنوان [type] می‌نویسد؛ با شناسه‌های آن‌ها پاسخ می‌دهد.

نمونه

همراه با AppMint.health مستند شده - نمونهٔ آنجا این یکی را هم نشان می‌دهد.

داده‌های سلامت کاربر را از طریق Health Connect می‌خواند و می‌نویسد: گام‌ها، مسافت، کالری فعال، ضربان قلب، خواب، وزن و جلسه‌های ورزش. در مرحله دسترسی ویزارد داده‌های سلامت (Health Connect) را روشن کنید و انواع و اینکه اپلیکیشن هرکدام را می‌خواند یا می‌نویسد تیک بزنید - فقط همان‌ها قابل درخواست هستند.

خروجی: هر متد یک Promise برمی‌گرداند. isAvailable() → {ok: true, available, status, read, write} (status: available، not_installed، update_required، unsupported = اندروید پایین‌تر از ۸.۰، disabled = گزینه خاموش). بقیه → {ok: true, …} یا {ok: false, code, message} با code disabled، unsupported، not_installed، update_required، not_declared (نوع در ویزارد تیک نخورده)، permission (کاربر مجوز نداده است)، bad-input، blocked (صفحه‌ای از سایت دیگر)، failed. نیازمندی: گزینه ویزارد، اندروید ۸.۰ به بالا، و Health Connect (در اندروید ۱۴ به بالا داخلی است، پیش از آن اپلیکیشنی از Play).

انواع: steps، distance، calories، heartRate، sleep، weight، exercise. زمان‌ها میلی‌ثانیه (Date.now())، شیءهای Date یا رشته‌های ISO هستند؛ پاسخ‌ها از رشته‌های ISO استفاده می‌کنند.

بررسی کنید، سپس درخواست دهید:

async function connectHealth() {
  if (!(window.AppMint && AppMint.health)) return false;          // browser or option off
  var s = await AppMint.health.isAvailable();
  if (s.status === 'not_installed') { await AppMint.health.openHealthConnect(); return false; }
  if (!s.available) return false;
  var r = await AppMint.health.requestPermissions({ read: ['steps', 'heartRate'], write: ['weight'] });
  return r.ok && r.denied.read.length === 0;
}

گام‌های امروز (مجموع‌ها با aggregate: true، خود رکوردها بدون آن):

async function stepsToday() {
  var start = new Date(); start.setHours(0, 0, 0, 0);
  var r = await AppMint.health.read('steps', { start: start, end: new Date(), aggregate: true });
  if (!r.ok) { console.warn(r.code, r.message); return 0; }
  return r.aggregate.count;
}

async function lastNightHeartRate() {
  var end = Date.now(), start = end - 12 * 3600 * 1000;
  var r = await AppMint.health.read('heartRate', { start: start, end: end });
  // r.records = [{start, end, id, samples: [{time, bpm}]}]
  return r.ok ? r.records.flatMap(function (x) { return x.samples; }) : [];
}

نوشتن - یک رکورد یا یک آرایه:

await AppMint.health.write('weight', { time: Date.now(), kilograms: 72.4 });
await AppMint.health.write('exercise', [{
  start: Date.now() - 45 * 60000, end: Date.now(), exerciseType: 'running', title: 'Evening run'
}]);
await AppMint.health.write('steps', { start: Date.now() - 3600000, end: Date.now(), count: 4200 });

فیلدهای رکورد: steps {start, end, count} · distance {start, end, meters} · calories {start, end, kilocalories} · heartRate {start, end, samples: [{time, bpm}]} · sleep {start, end, title?, stages?: [{start, end, stage}]} (awake، sleeping، out_of_bed، light، deep، rem) · weight {time, kilograms} · exercise {start, end, exerciseType, title?} (نام‌های Health Connect مانند running، walking، biking، swimming_pool، yoga، strength_training، other_workout). تجمیع‌ها: steps {count}، distance {meters}، calories {kilocalories}، heartRate {avg, min, max}، sleep / exercise {minutes}، weight {avg, min, max} (کیلوگرم).

نکته‌ها: Health Connect سیاست حفظ حریم خصوصی شما را از صفحه مجوزش نشان می‌دهد - نشانی مرحله پایان یا سیاست تولیدشده. پیش از انتشار در Google Play، در Play Console بخش App content → Health apps را با همان انواع داده و دلیل نیاز اپلیکیشن به هر کدام پر کنید؛ Play مجوزهای سلامت را بررسی می‌کند. Health Connect به اپلیکیشن تاریخچه ۳۰ روز پیش از اولین اعطای مجوز را می‌دهد. متدهای خام پشت آن (healthIsAvailable، healthRequestPermissions، healthRead، healthWrite، healthOpen) متن JSON و یک شناسه فراخوانی می‌گیرند - از کمکی استفاده کنید.