Xamarin.IOS在应用程序被杀死时处理远程通知

时间:2018-07-25 06:35:09

标签: xamarin xamarin.forms xamarin.ios

我有一个问题,当某个应用被杀死(即从最近的应用中手动删除)时,如何处理远程通知。

让我先给您一些背景信息。

我们有一台通过APNS将远程通知发送到iOS设备的服务器。我们在应用程序中处理通知,并将其存储在设备本身上。

当应用程序处于前台时,将调用DidReceiveRemoteNotification(),我们可以处理通知。然后,我们显示本地通知。

当应用程序在后台运行(未被杀死)时,也会调用DidReceiveRemoteNotification(),我们可以处理该通知。该通知会自动显示为本地通知。

问题

当应用被终止时,不会调用DidReceiveRemoteNotification(),因此我们无法处理该通知。但是,该通知将显示为横幅。

当应用程序被终止时,它将在通知中显示锁定键文本。我需要您根据该锁定键显示该自定义文本。非常感谢

PUSH =>

{{
aps =     {
    alert =         {
        "loc-args" =             (
        );
        "loc-key" = "new_chat";
    };
    "content-available" = 1;
    id = 3;
    message = Aaa;
    sound = default;
    subject = "new_chat";
    type = chat;
};}}

2 个答案:

答案 0 :(得分:0)

如果用户强行退出,iOS不会自动重新启动您的应用并调用DidReceiveRemoteNotification。查看didReceiveRemoteNotification API的“讨论” 部分:

  

...

     

但是,如果用户强行退出应用,系统不会自动启动您的应用。在这种情况下,用户必须重新启动您的应用程序或重新启动设备,然后系统才会尝试再次自动启动您的应用程序

     

...

Apple iOS文档:application:didReceiveRemoteNotification:fetchCompletionHandler:

答案 1 :(得分:0)

您可以尝试使用Voip push notification

但这会导致应用程序启动。

我们在重新启动时遇到同样的问题,因此在通过通知启动应用程序后,我们会对其进行处理并以编程方式杀死该应用程序(我知道杀死应用程序是很糟糕的事,但我们系统的工作流程需要这样做)