iPhone 在调试模式下不接收通知

iPhone doesn't receive notificatins in debug mode

iPhone 上的远程通知有一个非常奇怪的问题。设备只是不接收远程通知,但注册工作正常。我们检查了所有证书和配置文件,还尝试直接从 Azure 发送测试通知,结果与我们 api 发送的结果相同。从 HockeyApp 通知安装应用程序时工作正常。在调试中 DidReceiveRemoteNotification 方法没有被调用。

public override async void DidReceiveRemoteNotification(UIApplication application, NSDictionary userInfo, Action<UIBackgroundFetchResult> completionHandler)
{
     // Opened by push notification.
     if (application.ApplicationState == UIApplicationState.Background || application.ApplicationState == UIApplicationState.Inactive)
     {
          // Make userInfo readable.
          PushNotification notification = CrossDevice.Current.ConvertToNotification(userInfo);
     }

      // Process notification so we can attach to it's received event.                               
      CrossAzurePushNotifications.Platform.ProcessNotification(userInfo);

     // No data is altered.                                
     completionHandler(UIBackgroundFetchResult.NoData);
}

注意:我们正在使用 AzurePushNotifications 插件

xamarin forum question

您应该使用 'sandbox' 连接调试器进行测试。有关沙盒与生产的更多信息,请参阅 or this link

另请注意,在 Azure NotificationHub 中从生产环境切换到沙盒并不总是有效。最佳解决方案是为测试和生产创建一个单独的通知中心。

您需要两个 通知中心:一个用于测试,一个用于生产。

如果您正在开发 运行 来自 Xcode 的应用程序,您必须使用具有测试证书的测试中心,并且当您想要将其上传到 Apple Store o TestFlight 时,您必须更改 URL 并使用生产中心。如果没有,就不想工作了。

您需要不同的证书,您可以在这里查看流程:https://docs.microsoft.com/en-us/azure/notification-hubs/notification-hubs-ios-apple-push-notification-apns-get-started

这是您决定必须选择哪种证书的时间:https://docs.microsoft.com/en-us/azure/includes/media/notification-hubs-enable-apple-push-notifications/notification-hubs-appid-create-cert.png