/samcodes-notifications

:speech_balloon: Local device notification support for OpenFL Android and iOS targets

Primary LanguageHaxeMIT LicenseMIT

Haxe Local Notifications

License

Local notifications support for Haxe OpenFL Android and iOS targets. See the demo here.

Features

  • Schedule, manage and cancel local device notifications.
  • Manage application icon notification badge counts.
  • Open application when notification is tapped.
  • Custom notification icons (on Android only).

If there is something you would like adding let me know. Pull requests welcomed too.

Install

Get the haxelib:

haxelib install samcodes-notifications

Usage

Include the haxelib through Project.xml:

<haxelib name="samcodes-notifications" />

Known Issues

Due to a bug you cannot cancel individual notifications on iOS, though they can be cancelled all together. This means that if you schedule notifications using the same slots, any older untriggered notifications will not be overridden on iOS, but will on Android.

Due to the way Android alarm management works, force-stopping an application always cancels scheduled notifications. Notifications cancelled this way will be rescheduled the next time the device is rebooted, or when the app is relaunched.

Example

See the demo app for a complete example.

Android notifications with badging. Badging is done using ShortcutBadger:

Screenshot of Android notification

Android notification with custom notification icons:

Screenshot of Android notification

iOS notifications and badging:

Screenshot of iOS notification

Notes

This haxelib was originally based on the local notifications extension for Stencyl by byrobingames. Android app icon badging support is provided by ShortcutBadger by Leo Lin, which is licensed under the Apache License, Version 2.0.

Use #if (android || ios) conditionals around your imports and calls to this library for cross platform projects, as there is no stub/fallback implementation included in the haxelib.

If you need to rebuild the iOS or simulator ndlls navigate to /project and run rebuild_ndlls.sh.