2011-11-01 38 views
5

在通知中心配置了允許應用程序顯示通知的所有內容後,我的應用程序的本地通知不會觸發。本地通知無法在iOS5上工作

您是否遇到同樣的問題?

的更多信息:

  1. 相同的應用程序從相同的源代碼,前幾天編譯,這與4.1的XCode和iOS 4.3 SDK編譯,一切正常。

  2. 此外,使用舊版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]; 
} 

謝謝, 邁克爾

回答

11

在iOS 5中,通知由通知中心管理。您必須通過通知中心(以編程方式)註冊您的應用程序,或者(以編程方式)註冊您的應用程序,請轉至Settings > Notifications並選擇適當的設置,即啓用通知中心,選擇警報樣式等。

您可以使用下面的代碼來註冊通知中心(編程)您的應用程序,通過將其在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。

+0

我們是否也必須配置App ID和SSL證書來啓用APN服務? – user370773

+0

感謝您的回答。另外UILocalNotificationDefaultSoundName在iOS 5.0中有一些問題。 –

相關問題