mirror of
https://github.com/ElectronNET/Electron.NET.git
synced 2026-09-22 15:04:47 +00:00
Add API documentation (AI generated)
This commit is contained in:
164
docs/API/Notification.md
Normal file
164
docs/API/Notification.md
Normal file
@@ -0,0 +1,164 @@
|
||||
# Electron.Notification
|
||||
|
||||
Show native desktop notifications with custom content and actions.
|
||||
|
||||
## Overview
|
||||
|
||||
The `Electron.Notification` API provides the ability to show native desktop notifications with custom titles, bodies, icons, and actions. Notifications work across Windows, macOS, and Linux with platform-specific behavior.
|
||||
|
||||
## Methods
|
||||
|
||||
#### 🧊 `Task<bool> IsSupportedAsync()`
|
||||
Check if desktop notifications are supported on the current platform.
|
||||
|
||||
**Returns:**
|
||||
|
||||
Whether or not desktop notifications are supported on the current system.
|
||||
|
||||
#### 🧊 `void Show(NotificationOptions notificationOptions)`
|
||||
Create OS desktop notifications with the specified options.
|
||||
|
||||
**Parameters:**
|
||||
- `notificationOptions` - Notification configuration options
|
||||
|
||||
## Usage Examples
|
||||
|
||||
### Basic Notification
|
||||
|
||||
```csharp
|
||||
// Simple notification
|
||||
Electron.Notification.Show(new NotificationOptions
|
||||
{
|
||||
Title = "My Application",
|
||||
Body = "This is a notification message",
|
||||
Icon = "assets/notification-icon.png"
|
||||
});
|
||||
```
|
||||
|
||||
### Notification with Actions
|
||||
|
||||
```csharp
|
||||
// Notification with reply action
|
||||
Electron.Notification.Show(new NotificationOptions
|
||||
{
|
||||
Title = "New Message",
|
||||
Body = "You have a new message from John",
|
||||
Icon = "assets/message-icon.png",
|
||||
Actions = new[]
|
||||
{
|
||||
new NotificationAction { Text = "Reply", Type = NotificationActionType.Button },
|
||||
new NotificationAction { Text = "View", Type = NotificationActionType.Button }
|
||||
},
|
||||
OnClick = () => OpenMessageWindow(),
|
||||
OnAction = (action) =>
|
||||
{
|
||||
if (action == "Reply")
|
||||
{
|
||||
ShowReplyDialog();
|
||||
}
|
||||
else if (action == "View")
|
||||
{
|
||||
OpenMessageWindow();
|
||||
}
|
||||
}
|
||||
});
|
||||
```
|
||||
|
||||
### Rich Notifications
|
||||
|
||||
```csharp
|
||||
// Rich notification with all options
|
||||
Electron.Notification.Show(new NotificationOptions
|
||||
{
|
||||
Title = "Download Complete",
|
||||
Subtitle = "Your file has finished downloading",
|
||||
Body = "document.pdf has been downloaded to your Downloads folder.",
|
||||
Icon = "assets/download-icon.png",
|
||||
ImageUrl = "file://" + Path.Combine(AppDomain.CurrentDomain.BaseDirectory, "assets/preview.png"),
|
||||
Sound = NotificationSound.Default,
|
||||
Urgency = NotificationUrgency.Normal,
|
||||
Category = "transfer.complete",
|
||||
Tag = "download-123",
|
||||
Actions = new[]
|
||||
{
|
||||
new NotificationAction { Text = "Open", Type = NotificationActionType.Button },
|
||||
new NotificationAction { Text = "Show in Folder", Type = NotificationActionType.Button }
|
||||
},
|
||||
OnShow = () => Console.WriteLine("Notification shown"),
|
||||
OnClick = () => OpenDownloadedFile(),
|
||||
OnClose = () => Console.WriteLine("Notification closed"),
|
||||
OnAction = (action) =>
|
||||
{
|
||||
if (action == "Open")
|
||||
{
|
||||
OpenDownloadedFile();
|
||||
}
|
||||
else if (action == "Show in Folder")
|
||||
{
|
||||
ShowInFolder();
|
||||
}
|
||||
}
|
||||
});
|
||||
```
|
||||
|
||||
### Platform-Specific Notifications
|
||||
|
||||
```csharp
|
||||
// Windows toast notification
|
||||
if (RuntimeInformation.IsOSPlatform(OSPlatform.Windows))
|
||||
{
|
||||
Electron.Notification.Show(new NotificationOptions
|
||||
{
|
||||
Title = "Background Task",
|
||||
Body = "Your backup is complete",
|
||||
Icon = "assets/app-icon.ico",
|
||||
Tag = "backup-complete",
|
||||
RequireInteraction = true
|
||||
});
|
||||
}
|
||||
|
||||
// macOS notification with sound
|
||||
else if (RuntimeInformation.IsOSPlatform(OSPlatform.OSX))
|
||||
{
|
||||
Electron.Notification.Show(new NotificationOptions
|
||||
{
|
||||
Title = "Alert",
|
||||
Body = "Something needs your attention",
|
||||
Sound = NotificationSound.Default,
|
||||
Actions = new[]
|
||||
{
|
||||
new NotificationAction { Text = "View", Type = NotificationActionType.Button }
|
||||
}
|
||||
});
|
||||
}
|
||||
```
|
||||
|
||||
### Notification Management
|
||||
|
||||
```csharp
|
||||
// Check notification support
|
||||
var isSupported = await Electron.Notification.IsSupportedAsync();
|
||||
Console.WriteLine($"Notifications supported: {isSupported}");
|
||||
|
||||
// Create notification with events
|
||||
var notification = new NotificationOptions
|
||||
{
|
||||
Title = "Task Complete",
|
||||
Body = "Your long-running task has finished",
|
||||
OnShow = () => Console.WriteLine("Notification displayed"),
|
||||
OnClick = () => OpenTaskResults(),
|
||||
OnClose = () => Console.WriteLine("Notification dismissed")
|
||||
};
|
||||
|
||||
Electron.Notification.Show(notification);
|
||||
```
|
||||
|
||||
## Related APIs
|
||||
|
||||
- [Electron.App](App.md) - Application lifecycle events
|
||||
- [Electron.Tray](Tray.md) - System tray integration with notifications
|
||||
- [Electron.Screen](Screen.md) - Position notifications based on screen layout
|
||||
|
||||
## Additional Resources
|
||||
|
||||
- [Electron Notification Documentation](https://electronjs.org/docs/api/notification) - Official Electron notification API
|
||||
Reference in New Issue
Block a user