跳转至正文
@capgo/capacitor-alarm 设备 API 开源

闹钟 Capacitor 插件

即使在应用关闭时也能调度原生闹钟和通知

安装

bun add @capgo/capacitor-alarm bunx cap sync
npm、pnpm 或 yarn
  • npm install @capgo/capacitor-alarm
  • pnpm add @capgo/capacitor-alarm
  • yarn add @capgo/capacitor-alarm

指南

如何在 Capacitor 中使用 Alarm

使用 @capgo/capacitor-alarm

Capacitor Alarm 插件,用于管理原生系统的闹钟。

安装

bun add @capgo/capacitor-alarm
bunx cap sync

bunx cap sync 将插件的原生 code 复制到你的原生项目中。每次升级插件后都要重新运行。

导入

import { CapgoAlarm } from '@capgo/capacitor-alarm';

API 概览

方法 描述
createAlarm 使用系统时钟应用创建原生系统闹钟。Android 上使用 Alarm Clock intent;iOS 上如果可用(iOS 16+)则使用 AlarmKit。
openAlarms 如果可用,打开平台的原生闹钟列表 UI。
getOSInfo 获取 OS 及能力信息。
requestPermissions 请求平台上闹钟使用的相关权限。Android 上可能会跳转到设置以配置精确闹钟。
checkPermissions 检查原生闹钟访问权限的当前状态,不会触发 UI。iOS 上返回 AlarmKit 就绪状态;Android 上返回能力详情。
getAlarms 获取本应用已调度的闹钟列表。iOS 26+ 上返回 AlarmKit 中的闹钟。Android 不支持,因为系统不提供用于查询闹钟的 API。
cancelAlarm 按 ID 取消已调度的闹钟。iOS 26+ 上会从 AlarmKit 中移除该闹钟。Android/web 上返回不支持。

示例

createAlarm()

使用系统时钟应用创建原生系统闹钟。Android 上使用 Alarm Clock intent;iOS 上如果可用(iOS 16+)则使用 AlarmKit。

import { CapgoAlarm } from '@capgo/capacitor-alarm';

const result = await CapgoAlarm.createAlarm({
  hour: 7,
  minute: 30,
  label: 'Wake up',
  skipUi: false,
  vibrate: true
});
console.log('Alarm created:', result.success);

openAlarms()

如果可用,打开平台的原生闹钟列表 UI。

import { CapgoAlarm } from '@capgo/capacitor-alarm';

const result = await CapgoAlarm.openAlarms();
if (result.success) {
  console.log('Alarms UI opened');
}

getOSInfo()

获取 OS 及能力信息。

import { CapgoAlarm } from '@capgo/capacitor-alarm';

const info = await CapgoAlarm.getOSInfo();
console.log('Platform:', info.platform);
console.log('Supports native alarms:', info.supportsNativeAlarms);
if (info.platform === 'android') {
  console.log('Can schedule exact alarms:', info.canScheduleExactAlarms);
}

requestPermissions()

请求平台上闹钟使用的相关权限。Android 上可能会跳转到设置以配置精确闹钟。

import { CapgoAlarm } from '@capgo/capacitor-alarm';

const result = await CapgoAlarm.requestPermissions({ exactAlarm: true });
if (result.granted) {
  console.log('Permissions granted');
} else {
  console.log('Permissions denied');
}

checkPermissions()

检查原生闹钟访问权限的当前状态,不会触发 UI。iOS 上返回 AlarmKit 就绪状态;Android 上返回能力详情。

import { CapgoAlarm } from '@capgo/capacitor-alarm';

const status = await CapgoAlarm.checkPermissions();
console.log('AlarmKit allowed?', status.details?.alarmKit);

getAlarms()

获取本应用已调度的闹钟列表。iOS 26+ 上返回 AlarmKit 中的闹钟。Android 不支持,因为系统不提供用于查询闹钟的 API。

import { CapgoAlarm } from '@capgo/capacitor-alarm';

const { alarms } = await CapgoAlarm.getAlarms();
console.log('Scheduled alarms:', alarms);
alarms.forEach(alarm => {
  console.log(`Alarm ${alarm.id}: ${alarm.hour}:${alarm.minute} - ${alarm.label}`);
});

上表列出了 7 个核心方法。有关 Listener、版本辅助函数以及每个方法的完整契约,请参阅 GitHub 仓库.

完整参考文档

继续阅读:使用 @capgo/capacitor-alarm

如果你正在使用 使用 @capgo/capacitor-alarm 要规划原生插件工作,请将其与 @capgo/capacitor-alarm 了解 @capgo/capacitor-alarm 中的实现细节, 快速入门 有关“入门指南”中的实现细节, Capgo 插件目录 查看 Capgo 插件目录中的产品工作流, Capgo 提供的 Capacitor 插件 有关 Capgo 开发的 Capacitor 插件的实现细节,以及 添加或更新插件 有关添加或更新插件的实现细节。

常见问题

Alarm 插件常见问题

如何在 Capacitor 应用中安装 Alarm 插件?

运行 "bun add @capgo/capacitor-alarm"(或 "npm install @capgo/capacitor-alarm"),然后运行 "bunx cap sync",让 iOS 和 Android 项目识别到原生 code。再在应用的 code 中从 "@capgo/capacitor-alarm" 导入。

@capgo/capacitor-alarm 是否支持 React、Vue 和 Angular?

支持。Alarm 是一个 Capacitor 包,因此适用于任何运行在 Capacitor 中的 Web 框架,包括 Ionic、React、Vue、Angular、Svelte 和纯 JavaScript。

@capgo/capacitor-alarm 支持哪个 Capacitor 版本?

Capgo 插件遵循 Capacitor 的主版本号:请使用与 Capacitor 主版本号一致的插件主版本(例如插件 v8 对应 Capacitor 8)。GitHub README 中的兼容性表列出了仍在维护的版本。

@capgo/capacitor-alarm 是免费开源的吗?

是的。code 源码已在 GitHub 公开,地址为 https://github.com/Cap-go/capacitor-alarm/,也可以从 npm 免费安装。欢迎提交 Bug 报告和 Pull Request。

我可以在不经过 App Store 审核的情况下,更新使用了 Alarm 的 code 吗?

安装或升级插件会改动原生 code,因此需要重新做一次商店构建。之后,调用该插件的 JavaScript、HTML 和 CSS 改动就能通过 Capgo live updates 立即发布。

无需等待 App 审核,即可快速发布 Alarm 更新

只要插件已包含在你的商店版本中,Capgo live updates 就能在几分钟内把 JavaScript、HTML 和 CSS 的改动推送给用户。

开始使用 Capgo