A secure and privacy-focused Flutter plugin for handling local notifications with enhanced features and SOC 2 compliance considerations. Supports Android, iOS, Web platforms.
- π Secure handling of notification data
- π― Precise scheduling with timezone support
- πΌοΈ Rich media notifications (images, custom styles)
- π± Cross-platform support (Android, iOS, Web)
- π Granular permission controls
- π Action buttons support
- β° Exact timing with background wake-up support
- π‘οΈ Privacy-first approach
- π¨ Highly customizable appearance (NotificationStyle)
- π§ Advanced configuration (NotificationSettings)
- π JSON serialization support
Add this to your package's pubspec.yaml file:
dependencies:
easy_notifications: ^1.2.5Add the following permissions to your AndroidManifest.xml:
<uses-permission android:name="android.permission.RECEIVE_BOOT_COMPLETED"/>
<uses-permission android:name="android.permission.SCHEDULE_EXACT_ALARM" />
<uses-permission android:name="android.permission.POST_NOTIFICATIONS"/>Add the following keys to your Info.plist:
<key>UIBackgroundModes</key>
<array>
<string>fetch</string>
<string>remote-notification</string>
</array>To enable web notifications, you need to add the following script to your index.html file:
<script>
if ('Notification' in window) {
Notification.requestPermission().then(permission => {
if (permission === 'granted') {
console.log('Notification permission granted.');
}
});
}
</script>// Initialize the plugin
await EasyNotifications.init();
// Show a simple notification
await EasyNotifications.show(
title: 'Hello!',
body: 'This is a notification',
);
// Show notification with image and custom style
await EasyNotifications.show(
title: 'Styled Notification',
body: 'With custom appearance',
style: NotificationStyle(
backgroundColor: '#FFFFFF',
titleColor: '#000000',
padding: const EdgeInsets.all(16),
),
);
// Schedule a notification
await EasyNotifications.schedule(
title: 'Reminder',
body: 'Time for your meeting!',
scheduledDate: DateTime.now().add(Duration(hours: 1)),
);EasyNotifications.showMessage(
title: 'New Message',
body: 'You have a new notification',
id: 1001, // Optional custom ID
);- Fixed web notifications registration
- Added proper error handling for web platform
- Added back NotificationLevel class for backwards compatibility
- Fixed platform support documentation
- Removed unsupported platforms from pubspec.yaml
- π All sensitive data encrypted at rest
- ποΈ Automatic cleanup of temporary files
- π Secure local storage practices
- SOC 2 Type II compliant architecture
- GDPR-ready data processing
- CCPA privacy controls
We welcome contributions! Please see our contributing guide.
MIT License - see LICENSE for details.

