Notice for App Developers

Android setup:

On APIs 33 and higher (Android 13+), requires adding permission on the application's AndroidManifest.xml file:

<manifest [...]>
<uses-permission android:name="android.permission.POST_NOTIFICATIONS" />
[...]
</manifest>

Hierarchy

  • Notification

Methods

  • Checks the status of the notification permission.

    🚨 Android will not respond as "blocked" when checked; instead, you need to make a request to obtain the information.

    Example:

    let notificationPermissionStatus = await Eitri.notification.checkPermission()
    console.log(notificationPermissionStatus)

    /* Example output from this console.log:
    { status: "DENIED" }
    */

    Compatibility Control

    • API LEVEL 7 - Functionality added

    Returns Promise<NotificationPermissionOutput>

  • Check the permission status for scheduling local notifications.

    Example:

    let schedulePermissionStatus = await Eitri.notification.checkSchedulePermission()
    console.log(schedulePermissionStatus)

    /* Example output from this console.log:
    { status: "DENIED" }
    */

    Compatibility Control

    • API LEVEL 20 - Functionality added

    Returns Promise<NotificationPermissionOutput>

  • Requests the permission for scheduling local notifications.

    Example:

    let schedulePermissionStatus = await Eitri.notification.requestSchedulePermission()
    console.log(schedulePermissionStatus)

    /* Example output from this console.log:
    { status: "DENIED" }
    */

    Compatibility Control

    • API LEVEL 20 - Functionality added

    Returns Promise<NotificationPermissionOutput>

  • Schedule local notification on device

    Settings in the native app for using the functionality

    • Android requires SCHEDULE_EXACT_ALARM permission to receive scheduled local notifications for versions above Android 12.
    <manifest [...]>
    <uses-permission android:name="android.permission.SCHEDULE_EXACT_ALARM" />
    [...]
    </manifest>
    func userNotificationCenter(
    _ center: UNUserNotificationCenter,
    didReceive response: UNNotificationResponse,
    withCompletionHandler completionHandler: @escaping () -> Void
    ){
    // you can retrieve the deeplink by accessing the "url" property of the userInfo object
    guard let deeplink = response.notification.request.content.userInfo["url"] as? String else { return }
    ...
    }

    Example:

    try {
    await Eitri.notification.sendLocalPush({
    id: "1",
    title: "TITLE",
    message: "MESSAGE",
    delayInMilliseconds: 1000 * 10,
    deeplink: "eitri://run/eitri-doctor"
    })
    } catch(error) {
    console.log("sendLocalPush.error: ", error)
    }

    Compatibility Control

    • API LEVEL 20 - Functionality added

    Parameters

    Returns Promise<void>

Generated using TypeDoc