[React Native][IOS] 应用被通知打开时如何捕捉事件
Posted
技术标签:
【中文标题】[React Native][IOS] 应用被通知打开时如何捕捉事件【英文标题】:[React Native][IOS] How to catch the event when the app is opened by a notification 【发布时间】:2018-08-12 21:45:05 【问题描述】:React Native 有一个 PushNotificationios 模块来获取通知数据并监听像notificaiton
、register
这样的事件。当应用程序通过如下通知打开时,我想捕捉一个事件:PushNotificationIOS.addEventListener('notification_open', myhandler);
。有办法吗?
【问题讨论】:
【参考方案1】:你有两个选择。
1。使用PushNotificationIOS
您可以在需要的时候致电PushNotificationIOS.getInitialNotification();
。例如,您可以在应用程序的 index.js
文件中调用此方法并决定要呈现哪个组件。来自the docs:
此方法返回一个承诺。如果应用程序是通过推送通知启动的,则此承诺将解析为
PushNotificationIOS
类型的对象。否则,它会解析为null
。
2。使用原生 iOS App Delegate
来自the UIApplicationDelegate
documentation:
例如,如果您的应用因收到远程通知而启动,您可能需要重新配置用户界面以显示与该通知相关的数据。有关启动您的应用的可能原因列表,请参阅启动选项键。
如果出于某种原因需要提前知道,可以签入原生的application(_:willFinishLaunchingWithOptions:)
和application(_:didFinishLaunchingWithOptions:)
方法。请注意,这些方法在 React Native 初始化之前被调用。这是大多数 React Native 应用程序不需要的更高级的用例。
【讨论】:
PushNotificationIOS.getInitialNotification() 在用户点击通知或在后台收到通知后直接打开应用程序时调用。您如何区分这两种情况?以上是关于[React Native][IOS] 应用被通知打开时如何捕捉事件的主要内容,如果未能解决你的问题,请参考以下文章
如何在 ios 中单击通知时接收数据,当应用程序被杀死时,(react-native-fcm 模块在 IOS 中获取推送通知)
当应用程序在后台时,使用 React Native 的静默 iOS 推送通知
无法在 react-native 中获取 iOS 推送通知设备令牌