@capacitor/local-notifications
Local Notifications API 提供了一种在本地调度设备通知的方式(即无需服务器发送推送通知)。
安装
npm install @capacitor/local-notifications@latest-7
npx cap sync
Android
Android 13 需要权限检查才能发送通知。您需要相应地调用 checkPermissions() 和 requestPermissions()。
在 Android 12 及更早版本上,它不会显示提示,只会返回已授权状态。
从 Android 12 开始,除非在 AndroidManifest.xml 中添加以下权限,否则调度的通知不会精确触发:
<uses-permission android:name="android.permission.SCHEDULE_EXACT_ALARM" />
请注意,即使存在此权限,用户仍可以从应用设置中禁用精确通知。使用 checkExactNotificationSetting() 检查此设置的值。如果用户禁用此设置,应用将重启,并且任何使用精确闹钟调度的通知都将被删除。如果您的应用依赖精确闹钟,请务必在应用启动时(例如,在 App.appStateChange 中)检查此设置,以便提供回退方案或替代行为。
在 Android 14 中,有一个名为 USE_EXACT_ALARM 的新权限。使用此权限可以在无需向用户请求权限的情况下使用精确闹钟。仅当精确闹钟的使用是您应用功能的核心时才应使用此权限。有关使用此权限的更多信息,请参阅此处。
从 Android 15 开始,用户可以在私人空间中安装应用。用户可以随时锁定其私人空间,这意味着推送通知在用户解锁之前不会显示。
无法检测应用是否安装在私人空间中。因此,如果您的应用显示任何关键通知,请告知用户避免将应用安装在私人空间中。
有关与应用私人空间相关的行为更改的更多信息,请参阅 Android 文档。
配置
在 Android 上,本地通知可以使用以下选项进行配置:
| 属性 | 类型 | 描述 | 自版本 |
|---|---|---|---|
smallIcon | string | 设置通知的默认状态栏图标。图标应放在应用的 res/drawable 文件夹中。此选项的值应为可绘制资源 ID,即不带扩展名的文件名。仅适用于 Android。 | 1.0.0 |
iconColor | string | 设置通知状态栏图标的默认颜色。仅适用于 Android。 | 1.0.0 |
sound | string | 设置通知的默认提示音。在 Android 26+ 上,它设置默认通道声音,除非卸载应用,否则无法更改。如果找不到音频文件,在 Android 21-25 上将播放默认系统声音,在 Android 26+ 上将没有声音。仅适用于 Android。 | 1.0.0 |