Skip to content

[Bug]: Param launchURL differs between iOS and Android implementation #1635

@Martinocom-Switcho

Description

@Martinocom-Switcho

What happened?

We're currently on the latest version (5.0.4) of RN-OneSignal and 0.72.6 of React Native. We discovered a problem inside the library with the name of launchURL param.

On Android the received object contains launchUrl (lowercase) instead of launchURL (uppercase), causing the interface OSNotification to be wrongly typed.

This only happens on Android, since iOS is ok. I double-checked if everything is ok, reinstalling all the dependencies (yes, deleting also the .lock file and the node_modules folder + builds from Android). I have no customisations nor modification on the Native part.

UPDATE 1 Feb 2024: we upgraded to 5.0.5, but it's not solved.
UPDATE 19 Feb 2024: we upgraded to 5.0.6 but it's not solved.
UPDATE 28 Mar 2024: we upgraded to 5.1.0 but it's not solved.
UPDATE 23 Apr 2024: we upgraded to 5.1.2 but it's not solved.

Steps to reproduce?

On an Android phone:

  1. Setup everything (RN + OneSignal + ...)

  2. Send a notification with Launch URL set to "something"

  3. Receive the message in app (doesn't matter if foreground/background/closed)

  4. The object received will be like this:

{
 ...
 "body": "<body>",
 "launchUrl": "myapp://launch-url-should-be-uppercase",
 ...
}
  1. The OSNotification object is instead like this:
export default class OSNotification {
  body: string;
  launchURL?: string; // correctly typed uppercase URL
  ...
}

What did you expect to happen?

The types should mach, being launchURL in both the received object and the OSNotification interface. For now I applied a temporary solution:

  // @ts-expect-error in case of wrongly typed launchURL https://github.com/OneSignal/react-native-onesignal/issues/1635
  const launchUrl = (notification.launchURL ?? notification.launchUrl) as typeof notification.launchURL;

React Native OneSignal SDK version

5.0.4

Which platform(s) are affected?

  • iOS
  • Android

Relevant log output

No response

Code of Conduct

  • I agree to follow this project's Code of Conduct

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions