YourViewController.mファイルに私たちはYourViewController.hファイル内のボタンのタッチで呼び出すと、その関数に身体を与える機能を追加
-(void)Trigger_LocalNotification
{
[[UIApplication sharedApplication] cancelAllLocalNotifications];
UILocalNotification *_localNotification = [[UILocalNotification alloc]init];
//setting the fire dat of the local notification
_localNotification.fireDate = [NSDate dateWithTimeIntervalSinceNow:5];
//setting the time zone
_localNotification.timeZone = [NSTimeZone defaultTimeZone];
//setting the message to display
_localNotification.alertBody = @"Did you forget something?";
//default notification sound
_localNotification.soundName = UILocalNotificationDefaultSoundName;
//displaying the badge number
_localNotification.applicationIconBadgeNumber = [[UIApplication sharedApplication]applicationIconBadgeNumber]+1;
//schedule a notification at its specified time with the help of the app delegate
[[UIApplication sharedApplication]scheduleLocalNotification:_localNotification];
}
最初の行コードが宣言されている場合、システムからのすべてのローカル通知が削除されます。 2行目では、UILocalNotification変数を初期化しています。3行目では、fireDateプロパティを使用してこのローカル通知がトリガーされる時刻を設定しています.5秒後に通知がトリガーされることがわかります。
soundNameは、通知がトリガーされたときにサウンドを再生するために使用されるUILocalNotificationクラスのプロパティで、このローカル通知を発生させたアプリがアクティブでない場合、アラートボックスにはデフォルトの通知がポップアップ表示されますalertBodyプロパティを使用してアラートメッセージが書き込まれます。コードの最後の行は、この通知をシステムに添付します。
今、あなたのプロジェクトのアプリケーションDelegate.mファイルを選択して、このクラス(YourViewController)のオブジェクトを作成 イベント
[btn addTarget:self action:@selector(Trigger_LocalNotification) forControlEvents:UIControlEventTouchUpInside];
の内側にタッチアップボタンでこの機能を添付してください
- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions
{
// Override point for customization after application launch.
YourViewController *obj = [[YourViewController alloc]init];
[self.window addSubview:obj.view];
[self.window makeKeyAndVisible];
return YES;
}
アプリケーションを実行し、シミュレータでアプリケーションを起動したら、すぐにホームボタンを押して警告ボックスを表示します5秒後にローカル通知の
この回答がUILocalNotificationの実装方法の学習に役立つことを願っています。
アラートが正常に機能しています。そのアラートに表示されるのは他のView Controllerからのもので、なぜ動作していないのですか? 'application.applicationIconBadgeNumber = 0; \t NSString * reminderText = [notification.userInfo objectForKey:kRemindMeNotificationDataKey]; \t [viewController showReminder:reminderText]; – Chandu
show reminderは、他のView Controllerで書いたメソッドですが、なぜ呼び出されないのか分かりません。 – Chandu
ローカルnotifを処理するには良い方法です。 'isAppResumingFromBackground'を' YES'に設定する場所をお勧めしますか?いくつかの場所は 'application:didReceiveLocalNotification:'の後に呼び出されますが、アプリが再開するどのような場合でも呼び出されます。 – dvkch