首页 文章

本地通知在iOS5上不起作用

提问于
浏览
5

在通知中心配置所有内容(允许应用程序显示通知)后,我的应用程序的本地通知不会触发 .

你遇到同样的问题吗?

更多信息:

  • 几天前使用相同的源代码编译的同一个应用程序,使用XCode 4.1和iOS 4.3 SDK编译,一切运行良好 .

  • 此外,使用旧版XCode和iOS SDK编译的应用程序可以在升级后在iOS5上运行 .

但是,使用相同代码编译的应用程序,但XCode 4.2和iOS5 SDK不起作用 .

你有什么想法?或者iOS5有什么特别的工作吗?

示例代码如下:

UIApplication *app = [UIApplication sharedApplication];
NSArray *oldNotifications = [app scheduledLocalNotifications];

// Clear out the old notification before scheduling a new one.
if (0 < [oldNotifications count]) {

    [app cancelAllLocalNotifications];
} 

// Create a new notification
UILocalNotification *alarm = [[UILocalNotification alloc] init];
if (alarm) {

    alarm.fireDate = theDate;
    alarm.timeZone = [NSTimeZone defaultTimeZone];
    alarm.repeatInterval = NSDayCalendarUnit; //repeat every day
    alarm.alertBody = [NSString stringWithFormat:@"alert"];     
    [app scheduleLocalNotification:alarm];
    [alarm release];
}

谢谢,迈克尔

1 回答

  • 11

    在iOS 5中,通知由通知中心管理 . 您必须使用通知中心(以编程方式)注册您的应用程序,或(非编程)转到 Settings > Notifications 并选择适当的设置,例如启用通知中心,选择警报样式等 .

    您可以使用以下代码向Notification Center(以编程方式)注册您的应用程序,方法是将其放入 applicationDidFinishLaunching:

    // Although Register For Remote Notifications is not required for Local Notifications,
    // but in iOS 5's Notifications, we have to register otherwise the system doesn't register/recognize
    // the notifications posted from the application. Note that this behavior is not documented
    // as of Oct 2011, and it's possible that it's a bug and will be handled in the future releases.
    
    [[UIApplication sharedApplication] registerForRemoteNotificationTypes: 
     UIRemoteNotificationTypeAlert |
     UIRemoteNotificationTypeSound];
    

    HTH .

相关问题