applicationIconBadgeNumber不显示

在iOS应用中经常使用UIApplication的applicationIconBadgeNumber属性来显示徽章数字(即app右上角红色数字),但有时候红色徽章数字却不显示,在此对需注意的问题加以小结。

在iOS8及以上版本,app使用本地通知和远程通知前都必须注册支持用户交互的类型

typedef NS_OPTIONS(NSUInteger, UIUserNotificationType) {

    UIUserNotificationTypeNone    = 0,     // the application may not present any UI upon a notification being received

    UIUserNotificationTypeBadge   = 1 <<0,// the application may badge its icon upon a notification being received,徽章

    UIUserNotificationTypeSound   = 1 <<1,// the application may play a sound upon a notification being received,声音

    UIUserNotificationTypeAlert   = 1 <<2,// the application may display an alert upon a notification being received,弹出框

} NS_ENUM_AVAILABLE_IOS(8_0)__TVOS_PROHIBITED;

对于未注册的类型,系统将会忽略该种类型的响应。

常用注册代码块为:
UIUserNotificationType types =UIUserNotificationTypeBadge |UIUserNotificationTypeSound | UIUserNotificationTypeAlert;
UIUserNotificationSettings *mySettings = [UIUserNotificationSettings settingsForTypes:types categories:nil];[[UIApplication sharedApplicationregisterUserNotificationSettings:mySettings];
//  如果是远程通知的话,则还需注册消息推送
[[UIApplication sharedApplication] registerForRemoteNotifications];

对于远程通知来说还必须执行注册的第二步(本地通知不需要)以获取APNs服务器用于分发通知的应用程序特定的设备令牌。

所以在使用之前先对系统加以判断,如果系统时8.0及以上则加上上述注册代码块。

float version = [[[UIDevice currentDevice] systemVersion] floatValue];

if (version >= 8.0) {

// 注册代码块

}


  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
uniAPP角标清零的方法可以根据不同的平台进行设置。对于iOS平台,可以使用以下代码来清零应用的角标数量: ```javascript if (plus.os.name.toLowerCase() == 'ios') { var UIApplication = plus.ios.import('UIApplication'); var app = UIApplication.sharedApplication(); plus.runtime.setBadgeNumber(0); var GeTuiSdk = plus.ios.importClass('GeTuiSdk'); GeTuiSdk.setBadge(0); } ``` 这段代码通过调用iOS的API来设置应用的角标数量为0。\[1\] 对于使用JPush推送服务的uniAPP应用,可以在相关的方法中设置应用的角标数量为0,例如: ```objective-c //程序在运行时收到通知,点击通知栏进入app - (void)jpushNotificationCenter:(UNUserNotificationCenter *)center willPresentNotification:(UNNotification *)notification withCompletionHandler:(void (^)(NSInteger))completionHandler { \[UIApplication sharedApplication\].applicationIconBadgeNumber = 0; \[JPUSHService setBadge:0\]; } //程序在后台时收到通知,点击通知栏进入app - (void)jpushNotificationCenter:(UNUserNotificationCenter *)center didReceiveNotificationResponse:(UNNotificationResponse *)response withCompletionHandler:(void (^)())completionHandler { \[UIApplication sharedApplication\].applicationIconBadgeNumber = 0; \[JPUSHService setBadge:0\]; } //点击App图标,使App从后台恢复至前台 - (void)applicationWillEnterForeground:(UIApplication *)application { \[application setApplicationIconBadgeNumber:0\]; \[application cancelAllLocalNotifications\]; } //按Home键使App进入后台 - (void)applicationDidEnterBackground:(UIApplication *)application{ \[application setApplicationIconBadgeNumber:0\]; \[application cancelAllLocalNotifications\]; } ``` 这段代码通过设置应用的`applicationIconBadgeNumber`为0来清零应用的角标数量。\[2\] 另外,如果使用H5+调用push,在页面上调用消息监听时,可能会遇到消息监听事件没有被调用的情况。这可能是由于个推的SDK的问题。\[3\]在这种情况下,建议检查个推的SDK配置和使用方法是否正确,并确保消息监听事件被正确注册和调用。 #### 引用[.reference_title] - *1* *3* [uni-app 苹果桌面icon角标清除方法](https://blog.csdn.net/Skyline_ding/article/details/103393627)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v91^control_2,239^v3^insert_chatgpt"}} ] [.reference_item] - *2* [iOS极光推送清除角标解决方案](https://blog.csdn.net/JennyHermes/article/details/78622328)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v91^control_2,239^v3^insert_chatgpt"}} ] [.reference_item] [ .reference_list ]

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值