2017-01-17 5 views
0

私は、アプリ内のスクリーンにアラートとしてローカル通知を行うiOSアプリケーションを開発しています。通知をメインの通知領域に送信し、代わりに画面に何も警告しないようにします。これどうやってするの?アラートの代わりにメインの通知エリアにUILocalNotificationを送信します。

現在、通知領域には「通知なし」と表示されます。

ここに私のコードです:

AppDelegate

- (void)application:(UIApplication *)application didReceiveLocalNotification:(UILocalNotification *)notification 
{ 
    UIApplicationState state = [application applicationState]; 
    if (state == UIApplicationStateActive) { 
     UIAlertView *alert = [[UIAlertView alloc] initWithTitle:@"Reminder" 
                 message:notification.alertBody 
                 delegate:self cancelButtonTitle:@"OK" 
               otherButtonTitles:nil]; 
     [alert show]; 
    } 
     // Set icon badge number to zero 
    application.applicationIconBadgeNumber = 0; 
} 

はViewControllerを

self.itemText.text = @"Notification"; 
NSDate *pickerDate = [[NSDate alloc] initWithTimeIntervalSinceNow:5]; 
NSLog(@"Picked date is %@", pickerDate); 

NSDate *todaysDate; 
todaysDate = [NSDate date]; 
NSLog(@"Todays date is %@", todaysDate); 


// Schedule the notification 
UILocalNotification* localNotification = [[UILocalNotification alloc] init]; 
localNotification.fireDate = pickerDate; 
// TO DO : Assign proper text to self.itemText.text based on real data 
localNotification.alertBody = self.itemText.text; 
localNotification.alertAction = @"Another"; 
localNotification.timeZone = [NSTimeZone defaultTimeZone]; 
localNotification.applicationIconBadgeNumber = [[UIApplication sharedApplication] applicationIconBadgeNumber] + 1; 

[[UIApplication sharedApplication] scheduleLocalNotification:localNotification]; 
+0

したがって、基本的には 'UILocalNotification'をプッシュしています。アプリ内で通知を受け取ると、アプリ内にアラートが表示されます。そうですか? – KrishnaCA

答えて

0

UILocalNotificationは、アプリケーションがバックグラウンドで動作しているか、終了した場合にのみ、メインの通知領域に追加されます。フォアグラウンドでは、それはあなたが欲しいものを手に入れることができる唯一の方法あなたの方法

- (void)application:(UIApplication *)application didReceiveLocalNotification:(UILocalNotification *)notification 

を呼び出します、(iOSの10ので)UserNotifications.frameworkを使用することです。

Introduction to User Notifications Framework in iOS 10

Hereローカル通知

そして、それを使用して上のアップルのドキュメントで、アプリケーションがフォアグラウンドにある場合でも、ネイティブの通知を取得するためにUNUserNotificationCenterDelegateのメソッドを実装することを忘れないでくださいだけで最初のチュートリアルです。

- (void)userNotificationCenter:(UNUserNotificationCenter *)center 
    willPresentNotification:(UNNotification *)notification 
    withCompletionHandler:(void (^)(UNNotificationPresentationOptions options))completionHandler; 

希望します。

+0

こんにちは、私の質問に答えるために感謝します。現時点では、アプリがバックグラウンドになっていても通知領域のメインには何も表示されませんが、アプリでバッジを確認できます。私は何が欠けていますか?残念ながら、私たちはiOS 9.2に取り組んでいます:( – DrumPower3004

+0

)テキストは localNotification.alertBody(現在は空です)に追加する必要があり、soundNameはUILocalNotificationDefaultSoundNameなどに設定する必要があります。 – Sander

+0

これはViewControllerで取得しました。アプリがバックグラウンドのときに通知領域には表示されません。 – DrumPower3004

関連する問題