Help us shape the future of Go! Take the 2026 Go Developer Survey

notifications

package
v3.0.2 Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: Mar 8, 2026 License: MIT Imports: 8 Imported by: 0

Documentation

Overview

Package notifications provides cross-platform notification capabilities for desktop applications. It supports macOS, Windows, and Linux with a consistent API while handling platform-specific differences internally. Key features include:

  • Basic notifications with title, subtitle, and body
  • Interactive notifications with buttons and actions
  • Notification categories for reusing configurations
  • User feedback handling with a unified callback system

Platform-specific notes:

  • macOS: Requires a properly bundled and signed application
  • Windows: Uses Windows Toast notifications
  • Linux: Uses D-Bus and does not support text inputs

Index

Constants

View Source
const DefaultActionIdentifier = "DEFAULT_ACTION"

Variables

This section is empty.

Functions

This section is empty.

Types

type NotificationAction

type NotificationAction struct {
	ID          string `json:"id,omitempty"`
	Title       string `json:"title,omitempty"`
	Destructive bool   `json:"destructive,omitempty"` // (macOS-specific)
}

NotificationAction represents an action button for a notification.

type NotificationCategory

type NotificationCategory struct {
	ID               string               `json:"id,omitempty"`
	Actions          []NotificationAction `json:"actions,omitempty"`
	HasReplyField    bool                 `json:"hasReplyField,omitempty"`
	ReplyPlaceholder string               `json:"replyPlaceholder,omitempty"`
	ReplyButtonTitle string               `json:"replyButtonTitle,omitempty"`
}

NotificationCategory groups actions for notifications.

type NotificationOptions

type NotificationOptions struct {
	ID         string                 `json:"id"`
	Title      string                 `json:"title"`
	Subtitle   string                 `json:"subtitle,omitempty"` // (macOS and Linux only)
	Body       string                 `json:"body,omitempty"`
	CategoryID string                 `json:"categoryId,omitempty"`
	Data       map[string]interface{} `json:"data,omitempty"`
}

NotificationOptions contains configuration for a notification

type NotificationResponse

type NotificationResponse struct {
	ID               string                 `json:"id,omitempty"`
	ActionIdentifier string                 `json:"actionIdentifier,omitempty"`
	CategoryID       string                 `json:"categoryIdentifier,omitempty"`
	Title            string                 `json:"title,omitempty"`
	Subtitle         string                 `json:"subtitle,omitempty"` // (macOS and Linux only)
	Body             string                 `json:"body,omitempty"`
	UserText         string                 `json:"userText,omitempty"`
	UserInfo         map[string]interface{} `json:"userInfo,omitempty"`
}

NotificationResponse represents the response sent by interacting with a notification.

type NotificationResult

type NotificationResult struct {
	Response NotificationResponse
	Error    error
}

NotificationResult represents the result of a notification response, returning the response or any errors that occurred.

type NotificationService

type NotificationService struct {
	// contains filtered or unexported fields
}

Service represents the notifications service

var (
	NotificationService_ *NotificationService
)

func New

func New() *NotificationService

Creates a new Notifications Service.

func (*NotificationService) CheckNotificationAuthorization

func (ns *NotificationService) CheckNotificationAuthorization() (bool, error)

func (*NotificationService) OnNotificationResponse

func (ns *NotificationService) OnNotificationResponse(callback func(result NotificationResult))

OnNotificationResponse registers a callback function that will be called when a notification response is received from the user.

func (*NotificationService) RegisterNotificationCategory

func (ns *NotificationService) RegisterNotificationCategory(category NotificationCategory) error

func (*NotificationService) RemoveAllDeliveredNotifications

func (ns *NotificationService) RemoveAllDeliveredNotifications() error

func (*NotificationService) RemoveAllPendingNotifications

func (ns *NotificationService) RemoveAllPendingNotifications() error

func (*NotificationService) RemoveDeliveredNotification

func (ns *NotificationService) RemoveDeliveredNotification(identifier string) error

func (*NotificationService) RemoveNotification

func (ns *NotificationService) RemoveNotification(identifier string) error

func (*NotificationService) RemoveNotificationCategory

func (ns *NotificationService) RemoveNotificationCategory(categoryID string) error

func (*NotificationService) RemovePendingNotification

func (ns *NotificationService) RemovePendingNotification(identifier string) error

func (*NotificationService) RequestNotificationAuthorization

func (ns *NotificationService) RequestNotificationAuthorization() (bool, error)

Public methods that delegate to the implementation.

func (*NotificationService) SendNotification

func (ns *NotificationService) SendNotification(options NotificationOptions) error

func (*NotificationService) SendNotificationWithActions

func (ns *NotificationService) SendNotificationWithActions(options NotificationOptions) error

func (*NotificationService) ServiceName

func (ns *NotificationService) ServiceName() string

ServiceName returns the name of the service.

func (*NotificationService) ServiceShutdown

func (ns *NotificationService) ServiceShutdown() error

ServiceShutdown is called when the service is unloaded.

func (*NotificationService) ServiceStartup

func (ns *NotificationService) ServiceStartup(ctx context.Context, options application.ServiceOptions) error

ServiceStartup is called when the service is loaded.

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL