2014-04-29 44 views
11

我的应用程序中有一个通知部分,通知的总和以应用程序图标上的徽章计数形式显示。当用户访问通知时,徽章计数减少。 假设用户现在卸载构建并重新安装它,即使用户尚未打开应用程序,徽章计数也会直接显示在应用程序图标上。显示的徽章数量与应用程序卸载时的数量相同。一旦用户打开应用程序并访问通知部分,实际应该显示徽章计数。删除应用程序并重新安装后,徽章计数仍然存在

+0

我前一些天前(上testFlight应用)有同样的问题..我不知道,但我是在testFlight中删除并上传应用程序的构建,并删除并重新安装我的设备中的应用程序,它为我工作。 – iPatel

+0

我的版本存在于appstore中,最近已经提交了一个新版本。 – user3568907

+0

然后尝试从设备上删除应用程序,然后重新安装在设备上...做3-4次相同的操作可能会..它的工作.. :)有一个好运。:) – iPatel

回答

9

我几天前在测试testFlight的应用程序时遇到同样的问题。

通常,当您删除应用程序(虽然它显示一些徽章号码)并且重新安装它时,可能会发生此问题。但很难说真正的问题在哪里。

读什么Apple's official documentation is saying.

重置推送通知权限警报iOS上的第 时间推送通知启用推送应用注册,iOS的询问 用户,如果他们希望收到通知该应用程序。一旦用户 已对此警报作出响应,它将不会再次出现,除非 设备已恢复或该应用程序已卸载至少一天。

如果你想模拟首次您的应用程序的运行,你可以离开 卸载了一天的应用程序。您可以在没有 的情况下实现后者,通过将系统时钟设置为一天或 更多,实际上等待一天,完全关闭设备,然后打开设备返回 。

有从我的经验一些建议:

  • OFF您的通知形式设置
  • 并设置徽章0在服务器端,然后删除,并从您的设备重新安装应用程序。 - 安装后结束,然后运行应用程序
  • 运行的应用程序后,阿恩从设备应用中删除你,然后在服务器1和复位徽章您的通知形式设置

不知道,但可能是这会为你工作。 :)

+0

我的应用程序在应用程序商店。 – user3568907

+0

你能告诉我哪种方法会调用。如果应用程序正在卸载 – user3568907

+2

@ user3568907卸载时未调用任何方法。 –

7

徽章计数由操作系统维护,独立于应用程序。当应用程序被卸载(删除)时,操作系统会保留一些值,包括徽章计数。卸载应用程序时,不会调用开发人员方法或脚本。你将不得不接受这个限制,或者改变你的应用的设计来重新思考和克服这个问题。

+0

所以我有任何其他的方式来删除badgecount – user3568907

+0

@ user3568907只有当你运行的应用程序。 –

4

执行下面的代码在didFinishLaunchingWithOptions

if (![[NSUserDefaults standardUserDefaults] objectForKey:@"is_first_time"]) 
{   
[application cancelAllLocalNotifications]; 
// Restart the Local Notifications list 
application.applicationIconBadgeNumber = 0; 
[[NSUserDefaults standardUserDefaults] setObject:[NSNumber numberWithBool:YES] forKey:@"is_first_time"]; } 
相关问题