更新记录
1.0.0(2026-03-09) 下载此版本
- 初始版本发布
- 支持 Android 端:通过系统 AlarmClock Intent 创建闹钟,SharedPreferences 本地记录
- 支持 iOS 端:基于 UNUserNotificationCenter 本地通知,支持完整 CRUD 及重复闹钟
- API:addAlarm / removeAlarm / removeAllAlarms / getAlarms
平台兼容性
uni-app(5.02)
| Vue2 | Vue3 | Chrome | Safari | app-vue | app-nvue | Android | Android插件版本 | iOS | iOS插件版本 | 鸿蒙 |
|---|---|---|---|---|---|---|---|---|---|---|
| - | - | × | × | - | - | 5.0 | 1.0.0 | 12 | 1.0.0 | × |
| 微信小程序 | 支付宝小程序 | 抖音小程序 | 百度小程序 | 快手小程序 | 京东小程序 | 鸿蒙元服务 | QQ小程序 | 飞书小程序 | 小红书小程序 | 快应用-华为 | 快应用-联盟 |
|---|---|---|---|---|---|---|---|---|---|---|---|
| × | × | × | × | × | × | × | × | × | - | × | × |
uni-app x(5.02)
| Chrome | Safari | Android | Android插件版本 | iOS | iOS插件版本 | 鸿蒙 | 微信小程序 |
|---|---|---|---|---|---|---|---|
| × | × | 5.0 | 1.0.0 | 12 | 1.0.0 | × | × |
jun-alarm 闹钟提醒
跨端闹钟提醒 UTS API 插件,支持 Android 和 iOS 双端。
平台差异说明
| 功能 | Android | iOS |
|---|---|---|
| 添加闹钟 | ✅ 创建至系统时钟 App | ✅ 本地通知 |
| 删除闹钟 | ⚠️ 仅删除本地记录 | ✅ 完全删除 |
| 删除全部 | ⚠️ 仅删除本地记录 | ✅ 完全删除 |
| 查询闹钟 | ✅ 返回本地记录 | ✅ 返回本地记录 |
| 重复闹钟 | ✅ 指定星期 | ✅ 指定星期 |
| 权限 | 自动授予(普通权限) | 弹窗请求通知权限 |
Android 说明:闹钟通过系统 Intent(
ACTION_SET_ALARM)创建于系统时钟 App,可在手机状态栏看到闹钟图标。由于系统限制,代码无法精确删除系统闹钟,removeAlarm/removeAllAlarms仅清除插件本地记录,对应系统闹钟需用户在时钟 App 中手动关闭。iOS 说明:使用
UNUserNotificationCenter本地通知实现,通知在 App 后台或被杀死时均能触发,支持完整 CRUD。
引入方式
import { addAlarm, removeAlarm, removeAllAlarms, getAlarms } from '@/uni_modules/jun-alarm'
import type { AddAlarmOptions, RemoveAlarmOptions, RemoveAllAlarmsOptions, GetAlarmsOptions, AlarmInfo } from '@/uni_modules/jun-alarm'
API
addAlarm(opts: AddAlarmOptions): void
添加一个闹钟。
参数说明
| 字段 | 类型 | 必填 | 说明 |
|---|---|---|---|
| id | string | 否 | 闹钟 ID,传空字符串自动生成 |
| title | string | 是 | 闹钟标题 |
| body | string | 是 | 闹钟通知内容/备注 |
| triggerTime | string | 是 | 触发时间,格式 yyyy-MM-dd HH:mm:ss。Android 仅使用 HH:mm,iOS 一次性闹钟使用完整时间 |
| repeatDays | number[] | 是 | 重复星期:0=周日 1=周一 … 6=周六,空数组表示仅触发一次 |
| vibrate | boolean | 是 | 是否振动 |
| success | Function | 否 | 成功回调,返回 { id: string, message: string } |
| fail | Function | 否 | 失败回调 |
示例
// 每周一、三、五 早上 7:30 响铃
addAlarm({
id: 'my_alarm_001',
title: '起床啦',
body: '是时候起床了!',
triggerTime: '2026-03-10 07:30:00',
repeatDays: [1, 3, 5],
vibrate: true,
success: (res) => {
console.log('闹钟已添加,ID:', res.id)
},
fail: (err) => {
console.error('添加失败:', err.message)
}
})
// 2026-03-10 08:00 一次性闹钟(不重复)
addAlarm({
id: '',
title: '开会提醒',
body: '10分钟后有个重要会议',
triggerTime: '2026-03-10 08:00:00',
repeatDays: [],
vibrate: false,
success: (res) => {
console.log('ID:', res.id)
}
})
removeAlarm(opts: RemoveAlarmOptions): void
删除指定 ID 的闹钟。
参数说明
| 字段 | 类型 | 必填 | 说明 |
|---|---|---|---|
| id | string | 是 | 要删除的闹钟 ID |
| success | Function | 否 | 成功回调 |
| fail | Function | 否 | 失败回调(ID 不存在时触发) |
示例
removeAlarm({
id: 'my_alarm_001',
success: (res) => {
console.log(res.message)
},
fail: (err) => {
console.error(err.message)
}
})
removeAllAlarms(opts: RemoveAllAlarmsOptions): void
删除全部闹钟。
示例
removeAllAlarms({
success: (res) => {
console.log(res.message)
}
})
getAlarms(opts: GetAlarmsOptions): void
查询所有已添加的闹钟,结果为本地记录的 JSON 字符串。
示例
getAlarms({
success: (json) => {
const list: AlarmInfo[] = JSON.parse(json) as AlarmInfo[]
console.log('共', list.length, '条闹钟')
list.forEach((alarm) => {
console.log(alarm.id, alarm.title, alarm.triggerTime)
})
}
})
AlarmInfo 类型
| 字段 | 类型 | 说明 |
|---|---|---|
| id | string | 闹钟 ID |
| title | string | 标题 |
| body | string | 通知内容 |
| triggerTime | string | 触发时间(格式 yyyy-MM-dd HH:mm:ss) |
| repeatDays | number[] | 重复星期(0=周日…6=周六) |
| vibrate | boolean | 是否振动 |
权限处理
- iOS: 首次使用会弹出系统权限请求对话框
- Android: 自动请求日历读写权限
将额外权限加入到 manifest.json > app-plus > distribute > android > permissions
<uses-permission android:name="android.permission.SCHEDULE_EXACT_ALARM" />

收藏人数:
下载插件并导入HBuilderX
赞赏(0)
下载 23
赞赏 0
下载 11428236
赞赏 1872
赞赏
京公网安备:11010802035340号