- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我正在尝试使用 react-native-notification 库和 aws-amplify 在我的 android react native 项目中使用 FCM 推送通知。我遇到 PushNotification 问题。android 中未调用 onRegister 方法来获取设备 token 以发送远程通知。如何让这两个库在我的 React Native 项目中协同工作?
我遵循了 aws-amplify 文档 https://aws-amplify.github.io/docs/js/start?ref=amplify-rn-btn&platform=react-native在 React Native 项目中包含 amplify 库。然后我添加了根据 https://aws-amplify.github.io/docs/js/push-notifications 设置的推送通知我已经包含了 react-native-navigation 库来支持我的 react-native 应用程序中的导航 https://wix.github.io/react-native-navigation/#/docs/Installing安装 react-native 导航库 pushNotification.onRegister 方法后,没有调用它来接收设备 token ,没有它我无法在 android 中发送推送通知。
我在 App.js 中配置了推送通知,如下所示
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);
然后在 App.js 的构造函数中注册 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);
});
});
如果我不包含 react-native-navigation 库,此设置工作正常并且调用 PushNotification.onRegister 事件并打印设备 token 。在 iOS 中,我可以使用 react-native-navigation 库获取设备 token ,但在 android 中它不起作用。非常感谢有关此问题的任何指示!
最佳答案
参见此处:https://github.com/aws-amplify/amplify-js/issues/2541#issuecomment-455245033
.onRegister()
。之后的调用似乎是从缓存中加载的。关于react-native-navigation - 如何在 Android 中将 React native 导航与 AWS Amplify 推送通知集成?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54452587/
我是一名优秀的程序员,十分优秀!