删除应用并再次安装后,徽章计数会保留

use*_*907 15 cocoa-touch objective-c ios

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

iPa*_*tel 9

几天前,当我从testFlight测试应用程序时,我遇到了同样的问题.

通常,当您删除应用程序时(显示某些徽章编号时)可能会出现此问题,并再次重新安装.但很难说实际问题在哪里.

阅读Apple的官方文档所说的内容.

重置iOS上的推送通知权限警报第一次启用推送的应用程序注册推送通知时,iOS会询问用户是否希望接收该应用程序的通知.一旦用户响应此警报,除非设备已恢复或应用程序已卸载至少一天,否则不会再次显示该警报.

如果您想模拟首次运行的应用,可以将应用程序卸载一天.通过将系统时钟向前设置一天或更长时间,完全关闭设备,然后重新打开设备,您可以实现后者而无需实际等待一天.

我的经验提出了一些建议:

  • 关闭通知表单设置
  • 并在服务器端设置徽章0,然后从您的设备中删除并重新安装您的应用程序. - 安装完成后再运行app
  • 运行程序后,阿恩删除您的应用程序从设备,然后在服务器1和复位徽章开启您的通知的形式设置.

不确定,但可能会对你有用.:)

  • @ user3568907卸载时没有调用任何方法. (3认同)

Leo*_*ica 8

徽章计数由操作系统维护,与应用程序无关.卸载(删除)应用程序时,操作系统会保留一些值,包括徽章计数.卸载应用程序时,不会调用任何开发人员方法或脚本.您将不得不接受此限制,或更改应用程序的设计以重新思考并克服此问题.


小智 5

在 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"];  }
Run Code Online (Sandbox Code Playgroud)