【发布时间】:2017-12-02 23:02:26
【问题描述】:
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 插件
【问题讨论】:
-
您是使用 iPhone 设备测试通知还是 iOS 模拟器?
-
通知不会在模拟器上通过,因此您必须使用实际的苹果设备,其次您的通知中心必须设置为“沙盒”模式(理想情况下,虽然生产确实支持开发和发布)。
-
我们使用物理设备,通知中心设置为具有相应证书的生产。从一开始就是这样配置的。问题是几周前通知在调试时使用相同的集线器设置工作。我确信这不是因为应用程序中的代码更改,因为我还检查了具有相同结果的旧版本。
标签: iphone azure xamarin xamarin.forms azure-notificationhub