gpt4 book ai didi

react-native-navigation - 如何在 Android 中将 React native 导航与 AWS Amplify 推送通知集成?

转载 作者:行者123 更新时间:2023-12-04 17:41:07 24 4
gpt4 key购买 nike

我正在尝试使用 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

  • 当应用/设备是全新的时,Android 应用仅调用一次 .onRegister()。之后的调用似乎是从缓存中加载的。

关于react-native-navigation - 如何在 Android 中将 React native 导航与 AWS Amplify 推送通知集成?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54452587/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com