【问题标题】:iPhone doesn't receive notificatins in debug modeiPhone 在调试模式下不接收通知
【发布时间】: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 插件

xamarin forum question

【问题讨论】:

  • 您是使用 iPhone 设备测试通知还是 iOS 模拟器?
  • 通知不会在模拟器上通过,因此您必须使用实际的苹果设备,其次您的通知中心必须设置为“沙盒”模式(理想情况下,虽然生产确实支持开发和发布)。
  • 我们使用物理设备,通知中心设置为具有相应证书的生产。从一开始就是这样配置的。问题是几周前通知在调试时使用相同的集线器设置工作。我确信这不是因为应用程序中的代码更改,因为我还检查了具有相同结果的旧版本。

标签: iphone azure xamarin xamarin.forms azure-notificationhub


【解决方案1】:

您应该使用“沙盒”在附加调试器的情况下进行测试。有关沙盒与生产的更多信息,请参阅 this linkthis link

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

【讨论】:

  • 你和@Ivan 都是对的。在为生产创建新集线器并确保第一个集线器设置为沙盒通知后,它也可以在调试模式下工作。但是,我仍然不清楚为什么它以前有效。我确定我们只使用了一个集线器和一个证书和临时配置文件。
  • 很高兴您的问题得到解决。我不知道为什么它以前有效。也许苹果更新了他们的服务器或类似的东西。然而,这就是它应该的样子。
【解决方案2】:

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

如果您从 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

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-10-26
    • 1970-01-01
    • 2022-11-17
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多