我们在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插件
答案 0 :(得分:1)
您应该使用附带调试器的'沙盒'进行测试。有关沙盒与生产的详细信息,请参阅this link或this link。
另请注意,Azure NotificationHub中从生产切换到沙箱并不总是有效。最佳解决方案是为测试和生产创建单独的通知中心。
答案 1 :(得分:1)
您需要两个通知中心:一个用于测试,一个用于生产。
如果您是从Xcode开发和运行应用程序,则必须使用带有测试证书的测试中心,当您想要将其上传到Apple Store或TestFlight时,您必须更改URL并使用Production Hub 。如果没有,就没有工作了。
您需要不同的证书,您可以在此处查看流程: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