Giter Site home page Giter Site logo

Comments (14)

yotam-nots avatar yotam-nots commented on June 14, 2024 4

I've had luck with

pressAction: {
  launchActivity: "default",
  id: "default",
},

from react-native-notifee.

luisfuertes avatar luisfuertes commented on June 14, 2024 3

It works!

Thanks @yotam-nots

But press local notification with app in background, dont triger any event in app :(
I need a method like messaging().onNotificationOpenedApp to receive notification when user press it

from react-native-notifee.

paul-doherty avatar paul-doherty commented on June 14, 2024 1

Hey, I can partly answer that as I also had the same problem.

You need to call notifee.onBackgroundEvent(onBackgroundEventNotifee); to register your handler for these events. The problem I am now seeing however is when I do this it seems to conflict with the call I make to RN Firebase to set the background handler with messaging().setBackgroundMessageHandler(onBackgroundMessageReceived);

If I have both of those in my index.js it stops receiving notifications. I think what would help everybody here is a sample project which shows the expected setup with RN Firebase for example

from react-native-notifee.

Ehesp avatar Ehesp commented on June 14, 2024 1

Need to check this out, if the pressAction on the root of a notification didn't have a launchActivity it should be default behind the scenes - seems this is a bug

from react-native-notifee.

Salakar avatar Salakar commented on June 14, 2024 1

I have tried to launch the root app component as a 'custom component':

        pressAction: {
          id: 'default',
          mainComponent: App,
        },

but this seems to have the same effect as assigning launchActivity: 'default' to an action which kills the app before launching it.

mainComponent: App, is incorrect here, this should be the string name of the component registered via AppRegistry.registerComponent rather than the component itself: https://notifee.app/react-native/docs/android/interaction#advanced-custom-component

from react-native-notifee.

Fariha-Khalid avatar Fariha-Khalid commented on June 14, 2024

same problem i am facing :(

from react-native-notifee.

Fariha-Khalid avatar Fariha-Khalid commented on June 14, 2024

can you please show a sample to use notifee.onBackgroundEvent(onBackgroundEventNotifee);

from react-native-notifee.

paul-doherty avatar paul-doherty commented on June 14, 2024

That's all there is to it really. Provide the function you want invoked as a param when the notification is opened and do whatever you want in it

from react-native-notifee.

Ehesp avatar Ehesp commented on June 14, 2024

If I were to take a guess, I'd say wix/react-native-navigation is the problem here. Let me take a look at their docs are see what they're doing with intents/activities.

from react-native-notifee.

luisfuertes avatar luisfuertes commented on June 14, 2024

+1

from react-native-notifee.

johanschram avatar johanschram commented on June 14, 2024

I've had luck with

pressAction: {
  launchActivity: "default",
  id: "default",
},

Thanks ! It did the trick :)
@Ehesp, it might adding this in the docs.

from react-native-notifee.

whenmoon avatar whenmoon commented on June 14, 2024

The docs clearly say that If the application is in a minimized state it is moved to the foreground with this code:

notifee.displayNotification({
  title: 'New notification',
  android: {
    channelId,
    pressAction: {
      id: 'default',
    },
  },
});

But so far I cannot see any way to do this with any type of action handling - I cannot seem to only move the app from the background to the foreground which I think should be changed, because as the docs also say:

The Android guidelines suggest a notification should always open the application when pressed.

I have tried to launch the root app component as a 'custom component':

        pressAction: {
          id: 'default',
          mainComponent: App,
        },

but this seems to have the same effect as assigning launchActivity: 'default' to an action which kills the app before launching it.

from react-native-notifee.

roni-castro avatar roni-castro commented on June 14, 2024

It would be nice if we had a single callback onNotificationOpen and getInitialNotification that works on both react-native-firebase and notifee or a notifee.onNotificationOpenedApp, because I have to handle 4 callbacks/logic and they do not work to all use cases for me. I just gave up using onBackgroundEvent and created a custom logic, because it does not allow me to differentiate app killed/quit (background) to app minimized (also background) and it is not called for notification generated by FCM on background.

I am using this logic below to be able to identify the push was opened, based on the fact that after getInitialNotification of notifee and react-native-firebase are called it does not return duplicated notification. Also I call the function checkAppOpenedByNotification on onNotificationOpen and onForegroundEvent:

useEffect(() => {
   const onOpenNotification = (localNotification: LocalNotification) => {
     Alert.alert(localNotification.action)
   }

   fcmService.checkAppOpenedByNotification(onOpenNotification)
   const handleAppStateChange = (state: AppStateStatus) => {
     if (state === 'active') {
       fcmService.checkAppOpenedByNotification(onOpenNotification)
     }
   }
   AppState.addEventListener('change', handleAppStateChange)
   return () => {
     AppState.removeEventListener('change', handleAppStateChange)
     fcmService.unRegisterForegroundListeners()
   }
 }, [])
// fcmService.ts
public checkAppOpenedByNotification = async (OnOpenedNotification: OnOpenedNotification) => {
    const notification = await this.getInitialNotification()
    if (notification) {
      OnOpenedNotification(notification)
    }
  }

private getInitialNotification = async () => {
    const notifeeNotification = await notifee.getInitialNotification()
    const remoteNotification = await messaging().getInitialNotification()
    return (notifeeNotification && mapNotifeeNotificationToLocalNotification(notifeeNotification))
      || (remoteNotification && mapRemoteNotificationToLocalNotification(remoteNotification))
  }

from react-native-notifee.

helenaford avatar helenaford commented on June 14, 2024

Closing this due to the issue of a notification press not opening app has been resolved.

from react-native-notifee.

Related Issues (20)

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.