easy_notifications 1.2.5
easy_notifications: ^1.2.5 copied to clipboard
A Flutter plugin for handling local notifications with enhanced security and privacy features. Supports Android, iOS and Web platforms with rich customization options.
Easy Notifications #
A secure and privacy-focused Flutter plugin for handling local notifications with enhanced features and SOC 2 compliance considerations. Supports Android, iOS, Web platforms.
Features #
- 🔒 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
Getting Started #
Installation #
Add this to your package's pubspec.yaml
file:
dependencies:
easy_notifications: ^1.2.5
Platform Setup #
Android
Add 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"/>
iOS
Add the following keys to your Info.plist
:
<key>UIBackgroundModes</key>
<array>
<string>fetch</string>
<string>remote-notification</string>
</array>
Web
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>
Basic Usage #
// 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)),
);
Usage #
EasyNotifications.showMessage(
title: 'New Message',
body: 'You have a new notification',
id: 1001, // Optional custom ID
);
Notifications Preview #
Recent Updates #
1.2.5 #
- Fixed web notifications registration
- Added proper error handling for web platform
1.2.4 #
- Added back NotificationLevel class for backwards compatibility
1.2.3 #
- Fixed platform support documentation
- Removed unsupported platforms from pubspec.yaml
Security & Privacy #
Data Handling #
- 🔐 All sensitive data encrypted at rest
- 🗑️ Automatic cleanup of temporary files
- 📁 Secure local storage practices
Compliance #
- SOC 2 Type II compliant architecture
- GDPR-ready data processing
- CCPA privacy controls
Contributing #
We welcome contributions! Please see our contributing guide.
License #
MIT License - see LICENSE for details.