首页 > 解决方案 > Xamarin.IOS 和 Signalr 推送通知

问题描述

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

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

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

标签: xamarinpush-notificationxamarin.iosnotificationssignalr

解决方案


在 iOS 的后台时,无法保持信号器连接处于活动状态。操作系统会杀死它,你无法阻止它的发生。iOS 在进入后台时会立即终止应用程序(您有 5 秒时间),但有少数例外。

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

另外请注意,在调试时,iOS 将允许应用程序在后台运行。但发布的版本将不允许应用程序在后台运行。这会使调试信号器变得困难,因为它可以在调试中工作,但不能在生产版本中工作。

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


推荐阅读