让我的应用收到 5 个远程通知。当我点击单个通知时,所有 5 个通知也都消失了,我们需要完整显示其他 4 个通知,直到它们被点击。但主要问题是所有其他通知都是出于其他目的而不是出于同一目的。因此,我们需要显示所有通知,直到从通知托盘中单击它们。
我们还需要根据此更新徽章计数。当应用程序未运行(被杀死)时,有什么方法可以处理远程推送通知?您能否建议使用 Objective c 处理远程推送通知的更好方法?
谢谢
让我的应用收到 5 个远程通知。当我点击单个通知时,所有 5 个通知也都消失了,我们需要完整显示其他 4 个通知,直到它们被点击。但主要问题是所有其他通知都是出于其他目的而不是出于同一目的。因此,我们需要显示所有通知,直到从通知托盘中单击它们。
我们还需要根据此更新徽章计数。当应用程序未运行(被杀死)时,有什么方法可以处理远程推送通知?您能否建议使用 Objective c 处理远程推送通知的更好方法?
谢谢
您必须删除所有通知或将徽章计数分配为零或两者,一旦您在应用程序推送通知接收委托方法中收到通知,如下所示:
UIApplication.sharedApplication().applicationIconBadgeNumber = 0
UIApplication.sharedApplication().cancelAllLocalNotifications()
如果在您的单个推送通知接收处理中具有上述代码行,那么它将从 iOS 的通知托盘中删除应用程序的其他通知。
在Objective C中,上面的代码行如下:
[[UIApplication sharedApplication] setApplicationIconBadgeNumber:0];
[[UIApplication sharedApplication] cancelAllLocalNotifications];
听起来您可能将 applicationIconBadgeNumber 设置为 0,这将清除所有其他通知。[[UIApplication sharedApplication] setApplicationIconBadgeNumber: 0];
有关应用程序编号的更多详细信息,请参阅以下帖子 打开其中一个后所有通知消失
要设置正确的徽章编号,您可以检测到点击通知并相应地更新徽章计数。或者,您甚至可以在 apns 有效负载中将徽章编号传递给应用程序。
为了显示徽章计数,请确保您在从服务器发送通知时发布徽章计数:-
$body = array('aps' => array('alert' => $message,'badge' =>'$badgecount', "sound"=> "Default"));