如果用户在ios中从服务器删除/清除通知,如何处理徽章计数?

如果用户在ios中从服务器删除/清除通知,如何处理徽章计数?,ios,ipad,apple-push-notifications,Ios,Ipad,Apple Push Notifications,目前,我正在使用服务器推送通知实现一个ios应用程序 我已成功使用badge发送推送通知。 徽章计数将从服务器递增。如果用户从通知打开应用程序,它将重置服务器上的计数 现在的查询是用户是否未从通知打开应用程序并删除/清除所有通知。 这意味着不会有任何通知,所以当应用程序从后台打开时,它不会找到任何通知,因此它不会重置服务器上的计数,也不会重置应用程序图标上的徽章值 因此,如何解决此问题?每当应用程序点击AppDiBecomeActive委托时,请将徽章计数清除为零。使用自定义通知图标,并在应用程

目前,我正在使用服务器推送通知实现一个ios应用程序

我已成功使用badge发送推送通知。 徽章计数将从服务器递增。如果用户从通知打开应用程序,它将重置服务器上的计数

现在的查询是用户是否未从通知打开应用程序并删除/清除所有通知。 这意味着不会有任何通知,所以当应用程序从后台打开时,它不会找到任何通知,因此它不会重置服务器上的计数,也不会重置应用程序图标上的徽章值


因此,如何解决此问题?

每当应用程序点击AppDiBecomeActive委托时,请将徽章计数清除为零。

使用自定义通知图标,并在应用程序中保持已读和未读计数,当用户删除并打开应用程序中的通知时,您将无法管理推送通知中的徽章计数。

据我所知,您的应用程序获取相关数据的唯一方法是用户单击通知。我假设你正在发送某种定制的有效载荷。虽然我根本不知道你的应用程序的性质,但我想说,这确实不是一个好办法,因为你遇到了一个问题——你无法知道用户是否/何时在通知中心清除通知,如果他们这样做,你的应用程序将永远丢失这些数据


我建议您的应用程序在启动时从服务器请求新数据-即/获取自上次打开应用程序以来的任何新数据-这样,它与推送是否收到无关,并且根据您的服务器发送回的数据,您可以清除推送计数(或不清除).

当用户从通知打开应用时,您如何增加计数?如果用户从通知打开应用,则我将应用程序徽章编号设置为0,并将0设置为服务器。所以下次服务器将再次以0启动。但每次它都会将其设置为“0”,通知将保留在通知栏中。所以这不是一个合适的解决方案。将applicationBadgeNumber设置为零将清除通知托盘中的通知。但我如何才能在通知栏中获取通知总数?当我的应用程序关闭时?我将从应用程序图标打开它,而不是从通知打开它?当应用程序像这样激活时,您将获得通知计数[UIApplication sharedApplication].ApplicationConnectBadgeNumberApplicationConnectBadgeNumber计数将增加您的应用程序在后台将不活动。\n请使用另外两个web服务获取应用程序中的未读计数和更新读取计数