当 iOS 应用程序在后台或不在 运行 时如何响应 iOS APNS 事件
How to respond to iOS APNS events when iOS App is in the background or when not running
我正在通过 APNS 从 FCM 向我的 iOS 应用程序发送通知和数据消息(非通知),并且在前台一切正常。
我希望能够在应用程序处于后台时触发代码。
我已经在 info.plist
中设置了 "Enable Background Modes" "Remote Notifications"
但是,直到我将应用程序调到前台后,才会触发以下消息
message = new Message()
{
Apns = new ApnsConfig()
{
Headers = new Dictionary<string, string>()
{
{ "content_available", "true" },
},
},
Data = new Dictionary<string, string>()
{
{"temperature", "warm"},
},
Topic = "thetopic",
};
1) 谁能告诉我为什么这不能立即 运行。我尝试添加
{
"apns-priority", "10"
},
但这没有区别,而且确实如此
Local and Remote Notification Programming Guide
表示
It is an error to use this priority for a push notification that
contains only the content-available key.
我在这里错过了什么?
在 iOS 中是否有任何方法可以使非 运行ning 应用程序 运行 启动以响应 APNS通知或消息,而不涉及用户?
是否可以在 iOS 下让 App 永久 运行ning(即自动启动),以便它始终可以响应通知或消息?
您应该考虑为此创建一个 UNNotificationServiceExtension。
参见:https://developer.apple.com/documentation/usernotifications/unnotificationserviceextension
这实际上是一个每次收到通知时都会启动的小应用程序,您可以在其中放置代码。
您正在发送“数据消息”- 这不适用于非 运行 的应用。这是非常糟糕的记录,但你必须发送“通知消息”来唤醒你的应用程序。只需添加
"notification":{
"title" : "title",
"body" : "body"
},
到您的消息以使其正常工作
我正在通过 APNS 从 FCM 向我的 iOS 应用程序发送通知和数据消息(非通知),并且在前台一切正常。
我希望能够在应用程序处于后台时触发代码。
我已经在 info.plist
但是,直到我将应用程序调到前台后,才会触发以下消息
message = new Message()
{
Apns = new ApnsConfig()
{
Headers = new Dictionary<string, string>()
{
{ "content_available", "true" },
},
},
Data = new Dictionary<string, string>()
{
{"temperature", "warm"},
},
Topic = "thetopic",
};
1) 谁能告诉我为什么这不能立即 运行。我尝试添加
{
"apns-priority", "10"
},
但这没有区别,而且确实如此 Local and Remote Notification Programming Guide
表示
It is an error to use this priority for a push notification that contains only the content-available key.
我在这里错过了什么?
在 iOS 中是否有任何方法可以使非 运行ning 应用程序 运行 启动以响应 APNS通知或消息,而不涉及用户?
是否可以在 iOS 下让 App 永久 运行ning(即自动启动),以便它始终可以响应通知或消息?
您应该考虑为此创建一个 UNNotificationServiceExtension。
参见:https://developer.apple.com/documentation/usernotifications/unnotificationserviceextension
这实际上是一个每次收到通知时都会启动的小应用程序,您可以在其中放置代码。
您正在发送“数据消息”- 这不适用于非 运行 的应用。这是非常糟糕的记录,但你必须发送“通知消息”来唤醒你的应用程序。只需添加
"notification":{
"title" : "title",
"body" : "body"
},
到您的消息以使其正常工作