gpt4 book ai didi

ios - application : didReceiveRemoteNotification: fetchCompletionHandler: called more than once. 如何避免?

转载 作者:可可西里 更新时间:2023-11-01 05:54:47 28 4
gpt4 key购买 nike

我有一个应用程序,它使用远程/推送通知。

使用远程通知的后台模式,一切正常。应用程序唤醒并从服务器获取所有需要的数据。

但是如果通知中心没有清除推送通知警报,并且用户点击它 application: didReceiveRemoteNotification: fetchCompletionHandler: 方法将再次被调用,这意味着它将向服务器发送新的请求,并且这是不受欢迎的行为。

第一个选项是检查应用程序状态,但是当应用程序处于暂停状态时,这会给我带来问题。我必须执行类似下面代码的操作,但这对我不起作用:

    if([UIApplication sharedApplication].applicationState == UIApplicationStateActive || [UIApplication sharedApplication].applicationState == UIApplicationStateBackground){

}
if([UIApplication sharedApplication].applicationState == UIApplicationStateInactive){

}

第二个选项是,是否有办法在用户打开应用程序时清除通知中心的警报,但我找不到办法。

那么有没有办法避免第二次调用 application:didReceiveRemoteNotification: fetchCompletionHandler: 方法?

最佳答案

您可以在您的 APNS 消息中发送唯一 ID,然后通过记住该 ID 来过滤第二次调用 - 在您的应用程序的临时集合中(如果您在收到 APNS 消息和被单击之间终止应用程序,则会被第二次调用)或持久存储(以避免在任何情况下进行第二次调用)。

关于ios - application : didReceiveRemoteNotification: fetchCompletionHandler: called more than once. 如何避免?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20615688/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com