J'essaie de faire fonctionner les notifications push de la FCM dans mon projet react native pour Android avec la bibliothèque react-native-notification et aws-amplify. J'ai un problème avec la méthode PushNotification.onRegister qui n'est pas appelée dans Android pour obtenir le jeton de l'appareil afin d'envoyer des notifications à distance.
J'ai suivi la documentation de aws-amplify https://aws-amplify.github.io/docs/js/start?ref=amplify-rn-btn&platform=react-native pour inclure la bibliothèque amplifiée dans le projet react native. J'ai ensuite ajouté des notifications push configurées comme suit https://aws-amplify.github.io/docs/js/push-notifications J'ai inclus la bibliothèque react-native-navigation pour prendre en charge la navigation dans mon application react-native, comme indiqué ci-dessous. https://wix.github.io/react-native-navigation/#/docs/Installing Après l'installation de la bibliothèque de navigation react-native, la méthode pushNotification.onRegister n'est pas appelée pour recevoir le jeton de l'appareil, sans quoi je suis incapable d'envoyer des notifications push sous Android.
J'ai des notifications push configurées dans App.js comme ci-dessous
import PushNotification from '@aws-amplify/pushnotification';
import Analytics from '@aws-amplify/analytics';
import Auth from '@aws-amplify/auth';
// retrieve temporary AWS credentials and sign requests
Auth.configure(awsconfig);
// send analytics events to Amazon Pinpoint
Analytics.configure(awsconfig);
console.log(PushNotification);
PushNotification.configure(awsconfig);
Ensuite, dans le constructeur de App.js, je m'inscris pour les événements de PushNotification.
Navigation.events().registerAppLaunchedListener(() => {
PushNotification.onNotification((notification) => {
// Note that the notification object structure is different from Android and IOS
console.log('in app notification', notification);
// required on iOS only (see fetchCompletionHandler docs: https://facebook.github.io/react-native/docs/pushnotificationios.html)
notification.finish(PushNotificationIOS.FetchResult.NoData);
});
// get the registration token
PushNotification.onRegister((token) => {
Alert.alert(token);
this.setState({token:token});
console.log('in app registration', token);
});
// get the notification data when notification is opened
PushNotification.onNotificationOpened((notification) => {
console.log('the notification is opened', notification);
});
});
Cette configuration fonctionne bien et l'événement PushNotification.onRegister est appelé et le jeton du dispositif est imprimé si je n'inclus pas la bibliothèque react-native-navigation. Dans iOS, je suis en mesure d'obtenir le jeton du dispositif avec la bibliothèque react-native-navigation, mais dans Android, cela ne fonctionne pas. Toute indication sur ce problème serait grandement appréciée !