通过推送通知检测应用程序是否已启动/打开描述了如何通过用户点击推送通知来检测是否已打开本机iOS应用程序(即已启动还是仅处于活动状态)。
我如何在React Native中做同样的事情?PushNotificationIOS
让我附加一个通知侦听器...
PushNotificationIOS.addEventListener('notification', function (notification) {
console.log('got a notification', notification);
});
但是这两个触发当接收在前台的应用,推送通知,并当我通过推送通知打开应用程序。
我如何特别检测第二种情况?
这里有两种情况需要以不同的方式进行检测:
React.PushNotificationIOS.getInitialNotification
方法检测(并获取通知的数据)。UIApplicationStateInactive
状态(或'background'
状态,如React Native的AppStateIOS
类所称)。处理这两种情况的代码(您可以将其放在您index.ios.js
或应用启动时运行的其他位置):
import React from 'react';
import { PushNotificationIOS, AppState } from 'react-native';
function appOpenedByNotificationTap(notification) {
// This is your handler. The tapped notification gets passed in here.
// Do whatever you like with it.
console.log(notification);
}
PushNotificationIOS.getInitialNotification().then(function (notification) {
if (notification != null) {
appOpenedByNotificationTap(notification);
}
});
let backgroundNotification;
PushNotificationIOS.addEventListener('notification', function (notification) {
if (AppState.currentState === 'background') {
backgroundNotification = notification;
}
});
AppState.addEventListener('change', function (new_state) {
if (new_state === 'active' && backgroundNotification != null) {
appOpenedByNotificationTap(backgroundNotification);
backgroundNotification = null;
}
});
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句