OneSignal / OneSignal-Website-SDK

OneSignal is a push notification service for web and mobile apps. This SDK makes it easy to integrate your website with OneSignal Push Notifications. https://onesignal.com
Other
389 stars 115 forks source link

fix: Correct payload to unbreak open link when clicking welcome notification #1207

Closed chamons closed 1 week ago

chamons commented 1 week ago

https://app.asana.com/0/1208719710991963/1208760940956731/f

This issue boiled down to the "Open link when clicking welcome notification" feature not working, when you clicked the notification is opened the 'default' URL, not the option set.

After doing a bunch of digging, I was able to confirm that we were saving that setting and then servcing it to the SDK via the sync API.

I was then able to trace it through:

1) src/shared/helpers/EventHelper.ts (onSubscriptionChanged_showWelcomeNotification) 2) src/shared/helpers/MainHelper.ts (MainHelper.showLocalNotification)

There we shovel that url into a dataPayload that we shovel into a service worker call.

That comes out the other side when you click the notifiction in:

3) src/sw/serviceWorker/ServiceWorker.ts (onNotificationClicked)

There we cast via:

const osNotification = event.notification.data as IOSNotification;

IOSNotification is defined to have:

readonly launchURL?: string;

However, the struct we created had:

    const dataPayload = {
      data,
      url,
      buttons: buttons
        ? convertButtonsToNotificationActionType(buttons)
        : undefined,
    };

url != launchURL

Fixing the payload made it start working.

Systems Affected

Validation

Tests

Info

I only manually tested this. If we need automated tests, please show me where to get started.

Checklist

Programming Checklist Interfaces:

Functions:

Typescript:

Other:

Screenshots

image

image

Info

Checklist


Related Tickets

https://app.asana.com/0/1208719710991963/1208760940956731/f


This change is Reviewable