@sigx/lynx-notifications
v0.12.0
Published
Local push notifications for sigx-lynx
Maintainers
Readme
@sigx/lynx-notifications
Local and remote push notifications for sigx-lynx.
- iOS:
UNUserNotificationCenterfor scheduling and the foreground/tap delegate, APNs for remote push. - Android:
NotificationManager+AlarmManagerfor scheduling, Firebase Cloud Messaging for remote push.
Transport-agnostic on the server side: pair it with any APNs/FCM-fronting service — Azure Notification Hubs, Firebase Admin, OneSignal, Braze, AWS SNS, or direct APNs/FCM — by forwarding the device token to your backend.
📚 Documentation
Full API, remote-push setup (APNs entitlement, Firebase), event channels and live examples → sigx.dev/lynx/modules/notifications/overview
Install
pnpm add @sigx/lynx-notificationssigx prebuild auto-discovers the package, links the native module, adds POST_NOTIFICATIONS (Android 13+), registers the FCM service, adds UIBackgroundModes: remote-notification to iOS, and wires the APNs callbacks. The Android 13+ runtime prompt comes from @sigx/lynx-permissions, a dependency the auto-linker pulls in.
Remote push setup
Prebuild now wires the rest of the remote-push plumbing too — you only supply the credentials:
Android. The module declares the
com.google.gms.google-servicesGradle plugin, so prebuild applies it automatically (it processesgoogle-services.jsoninto the resources that initialize Firebase). Pointandroid.googleServicesFileat your Firebasegoogle-services.json; prebuild copies it intoandroid/app/on every run so it survivesandroid/regeneration:// signalx.config.ts export default { android: { googleServicesFile: './firebase/google-services.json' }, };Keep the file at a gitignored path to stay out of source control.
iOS. The module declares the
aps-environmententitlement, so prebuild generates<App>.entitlements(Release →production) and<App>.debug.entitlements(Debug →development) and wiresCODE_SIGN_ENTITLEMENTSper build configuration. You still need an Apple Developer account with the Push Notifications capability enabled and a signing identity / provisioning profile that includes it (e.g. viaios.developmentTeam+ automatic signing, or fastlane match for distribution).
The token/message/tap flow on the server side is transport-agnostic — forward the device token to your backend (Azure Notification Hubs, Firebase Admin, etc.). See the docs for the full flow.
A taste
import { Notifications } from '@sigx/lynx-notifications';
const { status } = await Notifications.requestPermission();
if (status === 'granted') {
await Notifications.schedule(
{ title: 'Reminder', body: 'Check your tasks', data: { taskId: '42' } },
{ delay: 60 }, // seconds
);
}The full remote-push flow (registerForPushNotifications, token/message/tap listeners, cold-start handling, badge management), the complete API, the raw event channels and platform gotchas are documented on the docs site.
License
MIT
