mirror of
https://github.com/electron/electron.git
synced 2026-05-02 03:00:22 -04:00
* feat: add `Notification.getHistory()` static method (macOS) Add `Notification.getHistory()` which returns a `Promise<Notification[]>` of all delivered notifications still present in Notification Center. Each returned Notification is a live object connected to the corresponding delivered notification — interaction events (click, reply, action, close) will fire on these objects, enabling apps to re-attach event handlers after a restart. Key implementation details: - Queries UNUserNotificationCenter's getDeliveredNotifications API - Creates live Notification objects with populated id, groupId, title, subtitle, and body properties from what macOS provides - Registers each object with the presenter via Restore() so the NotificationCenterDelegate routes events correctly - Restored notifications use is_restored_ flag to prevent removal from Notification Center when the JS object is garbage collected - Requires code-signed builds (unsigned builds resolve with empty array) Co-Authored-By: Claude <svc-devxp-claude@slack-corp.com> Co-authored-by: Keeley Hammond <khammond@slack-corp.com> * test: fix typecheck Co-authored-by: Keeley Hammond <vertedinde@electronjs.org> * fix: avoid dangling presenter pointer in GetHistory callback Co-authored-by: Keeley Hammond <khammond@slack-corp.com> * fix: document show() behavior Notifications returned by getHistory() now set is_restored_ so that Dismiss() skips removal from Notification Center on GC. Calling show() on a restored notification removes the original from NC and posts a new one. Co-authored-by: Keeley Hammond <khammond@slack-corp.com> * fix: address code review feedback Co-authored-by: Keeley Hammond <khammond@slack-corp.com> * test: fix oxfmt linting Co-authored-by: Keeley Hammond <khammond@slack-corp.com> * docs: update docs/api/notification.md Co-authored-by: Erick Zhao <erick@hotmail.ca> Co-authored-by: Keeley Hammond <vertedinde@electronjs.org> --------- Co-authored-by: trop[bot] <37223003+trop[bot]@users.noreply.github.com> Co-authored-by: Keeley Hammond <khammond@slack-corp.com> Co-authored-by: Keeley Hammond <vertedinde@electronjs.org>
Official Guides
Please make sure that you use the documents that match your Electron version. The version number should be a part of the page URL. If it's not, you are probably using the documentation of a development branch which may contain API changes that are not compatible with your Electron version. To view older versions of the documentation, you can browse by tag on GitHub by opening the "Switch branches/tags" dropdown and selecting the tag that matches your version.
FAQ
There are questions that are asked quite often. Check this out before creating an issue:
Guides and Tutorials
Getting started
Learning the basics
- Adding Features to Your App
- Notifications
- Recent Documents
- Application Progress
- Custom Dock Menu
- Custom Windows Taskbar
- Custom Linux Desktop Actions
- Keyboard Shortcuts
- Offline/Online Detection
- Represented File for macOS BrowserWindows
- Native File Drag & Drop
- Navigation History
- Offscreen Rendering
- Dark Mode
- Web embeds in Electron
- Boilerplates and CLIs
Advanced steps
- Application Architecture
- Accessibility
- Testing and Debugging
- Distribution
- Updates
- Getting Support
Detailed Tutorials
These individual tutorials expand on topics discussed in the guide above.
- Installing Electron
- Electron Releases & Developer Feedback
API References
- Process Object
- Supported Command Line Switches
- Environment Variables
- Chrome Extensions Support
- Breaking API Changes
Custom Web Features:
Modules for the Main Process:
- app
- autoUpdater
- BaseWindow
- BrowserWindow
- contentTracing
- desktopCapturer
- dialog
- globalShortcut
- inAppPurchase
- ImageView
- ipcMain
- Menu
- MenuItem
- MessageChannelMain
- MessagePortMain
- nativeTheme
- net
- netLog
- Notification
- powerMonitor
- powerSaveBlocker
- protocol
- pushNotifications
- safeStorage
- screen
- ServiceWorkerMain
- session
- ShareMenu
- systemPreferences
- TouchBar
- Tray
- utilityProcess
- View
- webContents
- webFrameMain
- WebContentsView
Modules for the Renderer Process (Web Page):
Modules for Both Processes:
- clipboard (non-sandboxed renderers only)
- crashReporter
- nativeImage
- shell (non-sandboxed renderers only)