PushNotification.onRegister not generating a token. PushNotication from @aws-amplify/pushnotification doesn't have configure, onRegeister or onNotification methods on it?
See original GitHub issue** Which Category is your question related to? ** @aws-amplify/pushnotification
** What AWS Services are you utilizing? ** AWS PinPoint, Analytics
** Provide additional details e.g. code snippets ** “dependencies”: { “@aws-amplify/analytics”: “^1.2.10”, “@aws-amplify/pushnotification”: “^1.0.22”, “aws-amplify-react-native”: “^2.1.7”, “react”: “16.6.3”, “react-native”: “0.58.3” },
I followed the instructions on AWS-Amplify’s page to setup push notifications on React Native IOS but I noticed that I’m not getting a token back after some debugging noticed that Notification import is doesn’t have configure, onRegeister or onNotification methods
My App.js file
`import React, { Component } from “react”; import { StyleSheet, Text, View, PushNotificationIOS, } from “react-native”;
import aws_exports from “./aws-exports”; import Analytics from “@aws-amplify/analytics”; import PushNotification from “@aws-amplify/pushnotification”;
// PushNotification need to work with Analytics Analytics.configure(aws_exports); Analytics.enable(); PushNotification.configure(aws_exports);
type Props = {}; export default class App extends Component<Props> {
componentDidMount(){ console.log(‘PN’,PushNotification); // get the notification data when notification is received 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 => {
console.log("in app registration", token);
});
// get the notification data when notification is opened
PushNotification.onNotificationOpened(notification => {
console.log("the notification is opened", notification);
});
} render() { return ( <View style={styles.container}> <Text style={styles.welcome}>Welcome to React Native!</Text> <Text style={styles.instructions}>To get started, edit App.js</Text> </View> ); } }
const styles = StyleSheet.create({ container: { flex: 1, justifyContent: “center”, alignItems: “center”, backgroundColor: “#F5FCFF” }, welcome: { fontSize: 20, textAlign: “center”, margin: 10 }, instructions: { textAlign: “center”, color: “#333333”, marginBottom: 5 } }); `
Issue Analytics
- State:
- Created 5 years ago
- Reactions:5
- Comments:21 (1 by maintainers)
Top GitHub Comments
after upgrading firebase dependencies in ‘android/app/build.gradle’ I had the same issue. I found the answer here - https://github.com/aws-amplify/amplify-js/pull/2916/files#diff-1d2098d70f6a43d881eee25b70f91adb
I update “@aws-amplify/pushnotification” and got the token so -
import { NativeModules } from 'react-native';
NativeModules.RNPushNotification.getToken(token => console.log(token))
Seems that the function changed in the latest version, so now you need to pass an error callback also