Xamarin.IOS 和 Signalr 推送通知

问题描述

我正在开发一个 Xamarin 应用程序,我创建了一个在 Xamarin.Android 和 Xamarin.IOS 中都能正常工作的 Signalr 通知系统,但是当 Xamarin.IOS 应用程序关闭时它不起作用。

有没有办法在不使用 APN 或 FCM 的情况下解决这个问题?

有没有办法让我的应用在应用关闭时也能做一些事情?

解决方法

无法在 iOS 的后台保持信号连接。操作系统会杀死它,您无法阻止这种情况发生。 iOS 进入后台时会立即终止应用程序(您有 5 秒的时间),但有一些例外。

如果您使用的是 android,您可以创建一个前台服务来保持信号连接。如果没有前台服务,android 也会在一段时间后杀死信号连接。 Android 会允许后台应用运行一段时间,然后将其杀死,因此您必须有一个前台服务来保持信号连接处于活动状态。

还要注意,在调试过程中,iOS 将允许应用在后台运行。但是发布的版本将不允许应用程序在后台运行。这会使调试 signalr 变得困难,因为它可以在调试中运行,但不能在生产版本中运行。

您可能需要使用 APN 来发送通知。请注意,如果您想将推送通知直接发送到 Apple 服务器,APN 需要 HTTP/2 后端服务器。或者您可以使用 FCM 发送 APN。