2

环境

我正在使用react-native-push-notification,它配置有:

// top level code in index.js
PushNotification.configure({
  onRegister: function (token) {
    console.log('TOKEN:', token);
  },
  onNotification: onNotif,
  senderID: '11223344556677',
  permissions: {
    alert: true,
    badge: true,
    sound: true,
  },
  popInitialNotification: false,
  requestPermissions: true,
});

的相关部分yarn list

├─ react-native@0.60.5
├─ @react-native-community/push-notification-ios@1.0.2
├─ react-native-push-notification@3.1.9
│  └─ @react-native-community/push-notification-ios@^1.0.1

APNS 证书设置正确。后台获取远程通知模式在功能页面的后台模式部分启用。

此外,如其他答案中所述,有以下didReceiveRemoteNotification方法AppDelegate.m

- (void)application:(UIApplication *)application didReceiveRemoteNotification:(NSDictionary *)userInfo
fetchCompletionHandler:(void (^)(UIBackgroundFetchResult))completionHandler
{
  [RNCPushNotificationIOS didReceiveRemoteNotification:userInfo fetchCompletionHandler:completionHandler];
}

发送到 APNS 的消息是:

{"aps":{"alert": "Test" ,"sound":"default","content-available": 1}}

还尝试了静默有效负载{"aps":{"content-available": 1}}和正常有效负载{"aps":{"alert": "Test" ,"sound":"default"}}

问题

在真实设备(iPhone 7,运行 iOS 13)上测试,当应用程序处于前台时,它正确接收到通知(没有显示实际的通知,但onNotif被调用)。但是当应用程序在后台运行(而不是被杀死)时,onNotif不再调用。我用嘈杂(正常)和无声(有content-available和没有消息)有效负载进行了测试,结果是相同的。嘈杂的推送通知将出现在通知中心,但onNotif在这两种情况下都不会调用。

4

0 回答 0