【问题标题】:How do you set applicationIconBadgeNumber with scheduleLocalNotification?如何使用 scheduleLocalNotification 设置 applicationIconBadgeNumber?
【发布时间】:2012-02-13 17:02:07
【问题描述】:

我在为我的 ios 应用程序设置带有计划本地通知的图标徽章时遇到了一些困难。

加载应用程序后单击主屏幕时,我能够在 10 秒后触发本地通知弹出。但是,未设置应用程序图标徽章编号。我正在使用以下代码。

UILocalNotification *localNotif = [[UILocalNotification alloc] init];
if (localNotif == nil) return;
NSDate *fireTime = [[NSDate date] addTimeInterval:10]; // adds 10 secs
localNotif.fireDate = fireTime;
localNotif.alertBody = @"New Message!";
localNotif.applicationIconBadgeNumber = 1;
[[UIApplication sharedApplication] scheduleLocalNotification:localNotif];

我不明白为什么会弹出本地通知但没有设置 applicationIconBadgeNumber。我可以通过执行以下代码手动设置图标徽章编号。

[UIApplication sharedApplication].applicationIconBadgeNumber = 1;

【问题讨论】:

    标签: objective-c ios cocoa-touch uilocalnotification


    【解决方案1】:

    你是在模拟器中调试吗?模拟器上有同样的问题,但你的代码在我的 iPhone 上运行良好。

    【讨论】:

    • 谢谢,我刚刚安装了 ios 4.3 并进行了测试。它适用于此。所以肯定是iphone 5模拟器的bug。
    【解决方案2】:

    您是否正在为所有徽章通知类型注册您的应用程序?

    [[UIApplication sharedApplication]registerForRemoteNotificationTypes: UIRemoteNotificationTypeBadge]; 
    

    另外,请检查您的通知设置是否禁用了徽章。

    【讨论】:

    • 问题是关于本地通知
    【解决方案3】:

    这是 Swift 中 iOS 8+ 的代码...

    let notificationSettings = UIUserNotificationSettings(forTypes: [UIUserNotificationType.Alert , UIUserNotificationType.Badge, UIUserNotificationType.Sound], categories: nil)
    application.registerUserNotificationSettings(notificationSettings)
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多