本地通知-UILocalNotification

第一步:創(chuàng)建本地推送

本地通知

UILocalNotification

// 創(chuàng)建?一個本地推送 UILocalNotification * notification = [[UILocalNotification alloc] init];

//設(shè)置10秒之后

NSDate *pushDate = [NSDate

dateWithTimeIntervalSinceNow:10];

if (notification != nil) { // 設(shè)置推送時間

notification.fireDate = pushDate; // 設(shè)置時區(qū)

notification.timeZone = [NSTimeZone

defaultTimeZone];

// 設(shè)置重復(fù)間隔

notification.repeatInterval = kCFCalendarUnitDay;

// 推送聲?音

notification.soundName = UILocalNotificationDefaultSoundName;

// 推送內(nèi)容

notification.alertBody = @"推送內(nèi)容";

// 顯?示在icon上的紅?色圈中的數(shù)?子 notification.applicationIconBadgeNumber = 1; // 設(shè)置userinfo ?方便在之后需要撤銷的時候使?用 NSDictionary *info = [NSDictionary

dictionaryWithObject:@"name"forKey:@"key"]; notification.userInfo = info;

//添加推送到UIApplication

UIApplication *app = [UIApplication

sharedApplication];

//對通知進?行設(shè)置 UIUserNotificationSettings *setting =

[UIUserNotificationSettings settingsForTypes:

(UIUserNotificationTypeBadge|

UIUserNotificationTypeAlert|

UIUserNotificationTypeSound) categories:nil];

[app registerUserNotificationSettings:setting]; [app scheduleLocalNotification:notification]; ?

}

第二步:接收本地推送

- (void)applicationDidBecomeActive:(UIApplication

*)application {

//當(dāng)程序還在后臺運?行

application.applicationIconBadgeNumber = 0; }

//接收本地推送

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

UIAlertView *alert = [[UIAlertView alloc] initWithTitle:@"本地通知" message:notification.alertBody delegate:nil cancelButtonTitle:@"確定" otherButtonTitles:nil];

[alert show];

// 圖標上的數(shù)字減1 application.applicationIconBadgeNumber -= 1;

}

第三步:發(fā)送即時通知

- (IBAction)start:(id)sender {

UIApplication *app = [UIApplication

sharedApplication]; //即時推送

[app presentLocalNotificationNow:notification];}

第四步:解除本地推送

- (IBAction)stop:(id)sender {

// UIApplication *app = [UIApplication sharedApplication];

// //取消本地推送

// [app cancelLocalNotification:notification];

[self stopNotifacation]; }

//解除本地推送

- (void)stopNotifacation{

// 獲得 UIApplication

UIApplication *app = [UIApplication

sharedApplication];

//獲取本地推送數(shù)組

NSArray *localArray = [app

scheduledLocalNotifications];

if (localArray) {

for (UILocalNotification *notify in localArray)

{

NSString *keyString = [notify.userInfo

objectForKey:@"key"];

if ([keyString isEqualToString:@"name"]) {

[app cancelLocalNotification:notify];

} }

} }

注:本地通知注冊在本地,如果不取消的話會留下記錄。可以通 過獲取本地推送數(shù)組看到,執(zhí)行完register后將會存在數(shù)組 中,如果不取消下次開啟app的時候之前的還存在。

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。

推薦閱讀更多精彩內(nèi)容

  • //發(fā)送通知 UILocalNotification *notification=[[UILocalNotific...
    韓七夏閱讀 1,652評論 1 0
  • 本地推送UILocalNotification 獲取每天的9點的時間NSDateNSDate *date = [N...
    穎穎穎火的蟲閱讀 340評論 0 1
  • 概述 在多數(shù)移動應(yīng)用中任何時候都只能有一個應(yīng)用程序處于活躍狀態(tài),如果其他應(yīng)用此刻發(fā)生了一些用戶感興趣的那么通過通知...
    莫離_焱閱讀 6,564評論 1 8
  • 極光推送: 1.JPush當(dāng)前版本是1.8.2,其SDK的開發(fā)除了正常的功能完善和擴展外也緊隨蘋果官方的步伐,SD...
    Isspace閱讀 6,792評論 10 16
  • 下午和室友聊天跟她講起十一在青島的經(jīng)歷,想起很多有趣的事情,四天四夜的旅途記憶滿滿。打算把它以回憶的方式寫出來,作...
    巫女白飯閱讀 509評論 0 3