本地推送

1渐裂、iOS8引入了地點通知(location notifications)繁疤。它其實也是本地通知(local notifications),但是他們只會在用戶一個特定的地理或者iBeacon區(qū)域時,才會被觸發(fā)揣炕。雖然我們看不到什么細(xì)節(jié)帘皿,地點通知 (location notifications)實現(xiàn)起來也很容易。

2畸陡、從iOS8開始鹰溜,通知被加入了新的特性。簡單地說丁恭,從現(xiàn)在開始曹动,當(dāng)一個通知被展示時,開發(fā)者可以指定用戶可觸發(fā)的具體的動作(actions)牲览,而且甚至不用啟動App也可以處理這個通知墓陈。動作(Actions)可以被歸類到一個類目(categories)下。特別是當(dāng)App安排了不少通知顯示的時候相當(dāng)方便竭恬。用類目 (categories)跛蛋,一個通知所有相關(guān)的動作(actions)都可以一次性的被捆綁和指定。反之痊硕,處理動作(actions)也非常簡單赊级,只需要實現(xiàn)其代理方法即可。每一個動作(actions)都有一個特殊的屬性標(biāo)示符(identifier)岔绸,被App用來辨別收到的動作(actions)然后適當(dāng)?shù)靥幚硭?/p>

3理逊、可以被安排的本地通知的數(shù)量并不是無限的,最多有64個本地通知可以被安排和展示盒揉。如果多余這個數(shù)字晋被,所有超過這個數(shù)字的通知都會被廢棄。盡管如此刚盈,無論通知是以什么樣的形式被安排的羡洛,最早的那個會被最先展示。

4藕漱、具體代碼:

在ViewController.m中添加代碼:

//創(chuàng)建通知

UILocalNotification *localNotification = [[UILocalNotification alloc] init];

//滑動提醒

localNotification.alertAction = @"查看消息";

localNotification.hasAction = YES;

//提醒內(nèi)容

localNotification.alertBody = @"推送消息";

//category的identifier

localNotification.category = @"COMPLETE_CATEGORY";

//推送聲音

localNotification.soundName = nil;

//觸發(fā)時間

localNotification.fireDate = [NSDate dateWithTimeIntervalSinceNow:3];

//應(yīng)用程序右上角圖標(biāo)標(biāo)記

localNotification.applicationIconBadgeNumber = 1;

[[UIApplication sharedApplication] scheduleLocalNotification:localNotification];

在AppDelegate.m中添加代碼:

在方法- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions中添加

UIMutableUserNotificationAction *notificationActionOk = [[UIMutableUserNotificationAction alloc]init];

notificationActionOk.identifier = @"completeRemindRater";

notificationActionOk.title = @"再工作一會兒";

//是否取消提醒

notificationActionOk.destructive = NO;

//是否需要權(quán)限欲侮,例如鎖屏的時候崭闲,執(zhí)行操作是否需要解鎖再執(zhí)行

notificationActionOk.authenticationRequired = NO;

//啟動app還是后臺執(zhí)行

notificationActionOk.activationMode = UIUserNotificationActivationModeBackground;

notificationActionOk.behavior = UIUserNotificationActionBehaviorDefault;

UIMutableUserNotificationAction *notificationActionRestNow = [[UIMutableUserNotificationAction alloc]init];

notificationActionRestNow.identifier = @"relaxNow";

notificationActionRestNow.title = @"休息";

//是否取消提醒? 當(dāng)設(shè)置為yes時,通知中相應(yīng)地按鈕的背景色會變成紅色

notificationActionRestNow.destructive = YES;

//是否需要權(quán)限威蕉,例如鎖屏的時候刁俭,執(zhí)行操作是否需要解鎖再執(zhí)行

notificationActionRestNow.authenticationRequired = NO;

//啟動app還是后臺執(zhí)行

notificationActionRestNow.activationMode = UIUserNotificationActivationModeBackground;

notificationActionRestNow.behavior = UIUserNotificationActionBehaviorDefault;

UIMutableUserNotificationCategory *notificationCompleteCategory = [[UIMutableUserNotificationCategory alloc] init];

notificationCompleteCategory.identifier = @"COMPLETE_CATEGORY";

[notificationCompleteCategory setActions:@[notificationActionOk,notificationActionRestNow] forContext:UIUserNotificationActionContextMinimal];

[notificationCompleteCategory setActions:@[notificationActionOk,notificationActionRestNow] forContext:UIUserNotificationActionContextDefault];

UIMutableUserNotificationAction *replyAction = [[UIMutableUserNotificationAction alloc]init];

replyAction.title = @"回復(fù)";

replyAction.identifier = @"inline-reply";

replyAction.activationMode = UIUserNotificationActivationModeBackground;

replyAction.authenticationRequired = NO;

replyAction.behavior = UIUserNotificationActionBehaviorTextInput;

UIMutableUserNotificationCategory *notificationCategory = [[UIMutableUserNotificationCategory alloc] init];

notificationCategory.identifier = @"REPLY_CATEGORY";

[notificationCategory setActions:@[replyAction] forContext:UIUserNotificationActionContextMinimal];

[notificationCategory setActions:@[replyAction] forContext:UIUserNotificationActionContextDefault];

[application registerUserNotificationSettings:[UIUserNotificationSettings settingsForTypes:UIUserNotificationTypeSound|UIUserNotificationTypeAlert|UIUserNotificationTypeBadge categories:[NSSet setWithArray:@[notificationCompleteCategory,notificationCategory]]]];

實現(xiàn)協(xié)議方法:

-(void)application:(UIApplication *)application handleActionWithIdentifier:(NSString *)identifier forLocalNotification:(UILocalNotification *)notification completionHandler:(void (^)())completionHandler{

if ([identifier isEqualToString:@"completeRemindRater"]) {

NSLog(@"點擊的是%@",identifier);

}

if ([identifier isEqualToString:@"relaxNow"]) {

NSLog(@"點擊的是%@",identifier);

}

if ([identifier isEqualToString:@"inline-reply"]) {

NSLog(@"點擊的是%@",identifier);

}

completionHandler();

}

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

NSLog(@"接收到通知");

}

參考鏈接:

http://www.cocoachina.com/ios/20150112/10901.html

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末,一起剝皮案震驚了整個濱河市韧涨,隨后出現(xiàn)的幾起案子牍戚,更是在濱河造成了極大的恐慌,老刑警劉巖虑粥,帶你破解...
    沈念sama閱讀 217,826評論 6 506
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件如孝,死亡現(xiàn)場離奇詭異,居然都是意外死亡舀奶,警方通過查閱死者的電腦和手機(jī)暑竟,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 92,968評論 3 395
  • 文/潘曉璐 我一進(jìn)店門,熙熙樓的掌柜王于貴愁眉苦臉地迎上來育勺,“玉大人,你說我怎么就攤上這事罗岖〗е粒” “怎么了?”我有些...
    開封第一講書人閱讀 164,234評論 0 354
  • 文/不壞的土叔 我叫張陵桑包,是天一觀的道長南蓬。 經(jīng)常有香客問我,道長哑了,這世上最難降的妖魔是什么赘方? 我笑而不...
    開封第一講書人閱讀 58,562評論 1 293
  • 正文 為了忘掉前任,我火速辦了婚禮弱左,結(jié)果婚禮上窄陡,老公的妹妹穿的比我還像新娘。我一直安慰自己拆火,他們只是感情好跳夭,可當(dāng)我...
    茶點故事閱讀 67,611評論 6 392
  • 文/花漫 我一把揭開白布。 她就那樣靜靜地躺著们镜,像睡著了一般币叹。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發(fā)上模狭,一...
    開封第一講書人閱讀 51,482評論 1 302
  • 那天颈抚,我揣著相機(jī)與錄音,去河邊找鬼嚼鹉。 笑死贩汉,一個胖子當(dāng)著我的面吹牛驱富,可吹牛的內(nèi)容都是我干的。 我是一名探鬼主播雾鬼,決...
    沈念sama閱讀 40,271評論 3 418
  • 文/蒼蘭香墨 我猛地睜開眼萌朱,長吁一口氣:“原來是場噩夢啊……” “哼!你這毒婦竟也來了策菜?” 一聲冷哼從身側(cè)響起晶疼,我...
    開封第一講書人閱讀 39,166評論 0 276
  • 序言:老撾萬榮一對情侶失蹤,失蹤者是張志新(化名)和其女友劉穎又憨,沒想到半個月后翠霍,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體,經(jīng)...
    沈念sama閱讀 45,608評論 1 314
  • 正文 獨居荒郊野嶺守林人離奇死亡蠢莺,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點故事閱讀 37,814評論 3 336
  • 正文 我和宋清朗相戀三年寒匙,在試婚紗的時候發(fā)現(xiàn)自己被綠了。 大學(xué)時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片躏将。...
    茶點故事閱讀 39,926評論 1 348
  • 序言:一個原本活蹦亂跳的男人離奇死亡锄弱,死狀恐怖,靈堂內(nèi)的尸體忽然破棺而出祸憋,到底是詐尸還是另有隱情会宪,我是刑警寧澤,帶...
    沈念sama閱讀 35,644評論 5 346
  • 正文 年R本政府宣布蚯窥,位于F島的核電站掸鹅,受9級特大地震影響,放射性物質(zhì)發(fā)生泄漏拦赠。R本人自食惡果不足惜巍沙,卻給世界環(huán)境...
    茶點故事閱讀 41,249評論 3 329
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望荷鼠。 院中可真熱鬧句携,春花似錦、人聲如沸颊咬。這莊子的主人今日做“春日...
    開封第一講書人閱讀 31,866評論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽喳篇。三九已至敞临,卻和暖如春,著一層夾襖步出監(jiān)牢的瞬間麸澜,已是汗流浹背挺尿。 一陣腳步聲響...
    開封第一講書人閱讀 32,991評論 1 269
  • 我被黑心中介騙來泰國打工, 沒想到剛下飛機(jī)就差點兒被人妖公主榨干…… 1. 我叫王不留,地道東北人编矾。 一個月前我還...
    沈念sama閱讀 48,063評論 3 370
  • 正文 我出身青樓熟史,卻偏偏與公主長得像,于是被迫代替她去往敵國和親窄俏。 傳聞我的和親對象是個殘疾皇子蹂匹,可洞房花燭夜當(dāng)晚...
    茶點故事閱讀 44,871評論 2 354

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

  • iOS中通知機(jī)制又叫消息機(jī)制,其包括兩類:一類是本地通知凹蜈;另一類是推送通知限寞,也叫遠(yuǎn)程通知。兩種通知在iOS中...
    七里汀閱讀 2,099評論 3 2
  • 一仰坦、簡介 目前說的是基于ios10之前,所以有些類是過期的. 推送分為本地推送和遠(yuǎn)程推送2種履植。可以在應(yīng)用沒有打開甚...
    JingYa_Lu閱讀 924評論 0 0
  • - (void)viewDidLoad { [super viewDidLoad]; UIButton *btn ...
    nothing_c閱讀 154評論 0 0
  • iOS本地推送 第一步:創(chuàng)建本地推送 // 創(chuàng)建一個本地推送 UILocalNotifica...
    學(xué)無止境666閱讀 1,188評論 2 5
  • Test Trettff
    pku76閱讀 94評論 0 0