【问题标题】:Xamarin.IOS Handle remote notifications when app is killed [duplicate]Xamarin.IOS在应用程序被杀死时处理远程通知[重复]
【发布时间】:2018-07-25 15:18:16
【问题描述】:

我有一个关于在应用被终止(即从最近的应用中手动删除)时处理远程通知的问题。

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

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

当应用在前台时,调用DidReceiveRemoteNotification(),我们可以处理通知。然后我们会显示一个本地通知。

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

问题

当应用被杀死时,DidReceiveRemoteNotification() 没有被调用,所以我们无法处理通知。但是,通知将显示为横幅。

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

推=>

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

【问题讨论】:

    标签: xamarin xamarin.forms xamarin.ios


    【解决方案1】:

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

    ...

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

    ...

    Apple iOS 文档:application:didReceiveRemoteNotification:fetchCompletionHandler:

    【讨论】:

    • 我不想放弃我的申请。我想修改应用程序死机时显示的通知消息。现在它显示了锁定键中的文本。
    • @MiguelAngelMuñoz ???如果调用 DidReceiveRemoteNotification 时 iOS 不在前台,则 iOS 不会在前台启动您的应用程序,这会在后台发生,但如果用户强制退出应用程序则根本不会发生。如果您想要不同的通知消息,请从您的服务器发送不同的消息。
    • 当用户强制退出应用程序时,我需要更改消息。我可以根据该键显示一条消息或另一条消息吗?
    • @MiguelAngelMuñoz 您可以只使用静默通知,或者在发送到 APNS 之前在您的服务器上本地化通知,使用通用消息作为缩写横幅,还可以在您的如果用户点击通知以显示完整的通知界面(因此您的扩展应用程序可以创建自定义视图),则 APN 类别值显示自定义版本的通知。
    • 我认为我必须使用的是这个,但我不适用于可本地化的 xamarin => stackoverflow.com/questions/33762317/…
    【解决方案2】:

    你可以尝试使用Voip push notification

    但这会导致应用启动。

    我们在重新启动时遇到了同样的问题,所以在通过通知启动应用程序后,我们会处理它并以编程方式杀死应用程序(我知道杀死应用程序是不好的 idia,但我们系统的工作流程需要这样做)

    【讨论】:

    • 如果您的应用实际上不是 VoIP 应用,应用商店的审核人员会拒绝它。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-09-21
    • 2016-11-25
    • 1970-01-01
    • 2017-06-07
    • 1970-01-01
    相关资源
    最近更新 更多