capacitor-critical-alerts
v1.0.2
Published
Capacitor plugin for iOS Critical Alerts permission
Readme
capacitor-critical-alerts
Capacitor plugin for requesting iOS Critical Alerts permission.
Critical alerts are notifications that can bypass Do Not Disturb and the ringer switch. They require a special entitlement from Apple.
Offical push-notification capacitor plugins doesnt let you request for critical alert permissions - after you get the permission you can send critical alerts using the offical plugin (add the required fields to the firebase push notification json)
{
"aps":{
"alert": "This is a Critical Alert!",
"badge": 1,
"sound": {
"critical": 1,
"name": "your_custom_sound.aiff",
"volume": 1.0
}
}
}Install
npm install capacitor-critical-alerts
npx cap syncLocal Development Install
To install the plugin locally during development:
# From your Capacitor app directory, install using the local path
npm install /path/to/capacitor-plugins/critical-alerts
# Sync with native projects
npx cap syncOr using npm link:
# In the plugin directory
cd /path/to/capacitor-plugins/critical-alerts
npm link
# In your Capacitor app directory
npm link capacitor-critical-alerts
npx cap synciOS Setup
Critical alerts require a special entitlement from Apple. You must:
- Request the Critical Alerts entitlement from Apple via your developer account
- Add the
com.apple.developer.usernotifications.critical-alertsentitlement to your app
See Apple's documentation for more information.
Android
Critical alerts are an iOS-only feature. On Android, this plugin will always return granted.
Example
import { CriticalAlerts } from 'capacitor-critical-alerts';
const requestCriticalAlerts = async () => {
const status = await CriticalAlerts.checkPermissions();
if (status.criticalAlerts !== 'granted') {
const result = await CriticalAlerts.requestPermissions();
console.log('Critical alerts permission:', result.criticalAlerts);
}
};Notice: The status will almost always start as denied and not as prompt.
API
requestPermissions()
requestPermissions() => Promise<PermissionStatus>Request permission to receive critical alerts.
Returns: Promise<PermissionStatus>
checkPermissions()
checkPermissions() => Promise<PermissionStatus>Check permission status for critical alerts.
Returns: Promise<PermissionStatus>
Interfaces
PermissionStatus
| Prop | Type |
| ------------------ | ----------------------------------------------------------- |
| criticalAlerts | 'prompt' \| 'prompt-with-rationale' \| 'granted' \| 'denied' |
