【问题标题】:icon badge not appear in IOS 10 simulator图标徽章未出现在 IOS 10 模拟器中
【发布时间】:2017-05-23 21:29:42
【问题描述】:
我希望在单击应设置应用程序图标气泡编号的按钮后看到气泡图标徽章编号 - 但是 - 在按下主页按钮后我没有在图标中看到任何编号的气泡。我的问题:图标徽章不会出现在 ios 模拟器中吗?
- (IBAction)btn1_click:(id)sender {
[[UIApplication sharedApplication] setApplicationIconBadgeNumber:4];
}
【问题讨论】:
标签:
ios
objective-c
ios-simulator
【解决方案1】:
不完全直观,但您的应用必须首先获得使用UNUserNotificationCenter requestAuthorizationWithOptions:completionHandler: 处理通知的权限
// import with *one of*...
#import <UserNotifications/UserNotifications.h>
@import UserNotifications;
UNUserNotificationCenter *center = [UNUserNotificationCenter currentNotificationCenter];
[center requestAuthorizationWithOptions:UNAuthorizationOptionBadge completionHandler:^(BOOL granted, NSError * _Nullable error) {
if (granted) {
[UIApplication sharedApplication].applicationIconBadgeNumber = 4;
}
}];
徽章是一种用户交互——与通知相关联——必须获得授权。
【解决方案2】:
您还应该在主线程上设置徽章 - 我收到了上面代码的警告。
这适用于 Swift:
private func badgeTest() {
UNUserNotificationCenter.current().requestAuthorization(options: .badge) { (granted, error) in
if granted {
DispatchQueue.main.async {
UIApplication.shared.applicationIconBadgeNumber = 4
}
}
}