我正在通過本地通知爲應用程序實施提醒功能。 用戶將安裝時間以及重複間隔和應用程序將安排這樣相應的通知:iOS通知:未調用的回調
UILocalNotification *notification = ...;
[[UIApplication sharedApplication] scheduleLocalNotification:notification];
對於這個工作我需要註冊我的通知類型如下:
UIUserNotificationSettings *notificationSettings;
notificationSettings = [UIUserNotificationSettings
settingsForTypes:UIUserNotificationTypeAlert
categories:nil];
[[UIApplication sharedApplication]
registerUserNotificationSettings:notificationSettings];
雖然通知將被正確安排,所有AppDelegate回調(didRegisterUserNotificationSettings
,didReceiveLocalNotification
)都不會被調用。但是當應用處於前臺時,我需要對 通知做出反應。
註冊通知設置應觸發在AppDelegate的回調消息:
- (void)application:(UIApplication *)application
didRegisterUserNotificationSettings:(UIUserNotificationSettings *)notificationSettings
{
NSLog(@"Callback called.");
}
只是正常的快速測試項目(New Project - >單查看應用程序 - >添加註冊碼和回調 - >啓動)。回調被調用。
但是,在真正的應用程序它不起作用。
我完全剝離了我的應用程序AppDelegate(刪除自定義的init代碼,沒有ui加載),以便它只註冊通知設置。全新的應用安裝會正確觸發用戶確認對話框。但回調不會被調用。
我是否缺少構建設置/編譯器標誌?我不知道該應用指向該方向的任何特殊設置。我無法發現示例項目的任何不同之處。
Xcode 7.2,iPod5 iOS9.2.1
控制檯中是否有任何東西? –
@LouFranco沒有什麼。我甚至檢查了完整的設備日誌。 – lupz
@lupz你試過另一種通知類型嗎?可能是'UIUserNotificationTypeBadge | UIUserNotificationTypeSound' – sage444