本地通知在iOS5上不起作用 [英] Local Notification doesn't work on iOS5
问题描述
在通知中心配置所有内容后,该应用程序可以显示通知,我的应用程序的本地通知不会触发。
After configuring everything in notification center, which allows the app to display the notification, my app's local notification doesn't fire.
您是否遇到同样的问题?
Do you encounter the same problem?
更多信息:
-
从同一个应用程序编译的相同应用程序几天前的源代码,用XCode 4.1和iOS 4.3 SDK编译,一切运行良好。
The same app compiled from the same source code a few days ago, which compiled with XCode 4.1 and iOS 4.3 SDK, everything works well.
此外,使用旧版XCode和iOS SDK编译的应用程序可以在升级后在iOS5上运行。
In addition, the app compiled with old version XCode and iOS SDK, can work on iOS5, after upgrade.
但是,使用相同代码编译的应用程序,但XCode 4.2和iOS5 SDK不起作用。
However, the app which compiled with the same code, but XCode 4.2 and iOS5 SDK doesn't work.
你有什么想法吗?
或者iOS5有什么特别的工作吗?
Do you have any ideas? Or is there any special work for 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];
}
谢谢,
Michael
Thanks, Michael
推荐答案
在iOS 5中,通知由Notification Center管理。您必须在通知中心(以编程方式)注册您的应用程序,或(以非编程方式)转到设置>通知
并选择适当的设置,例如启用通知中心,选择提醒方式等。
In iOS 5, notifications are managed by Notification Center. You have to register your application with the Notification Center (programmatically), or (non-programmatically) go to Settings > Notifications
and select appropriate settings i.e. enable Notification Center, select Alert Style, and others.
您可以使用以下代码注册您的应用程序使用Notification Center(以编程方式),将其放入 applicationDidFinishLaunching:
:
You can use following piece of code to register your application with Notification Center (programmatically), by putting it in 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。
这篇关于本地通知在iOS5上不起作用的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!