IOS實現(xiàn)本地推送

本地推送(UILocalNotification)和遠程推送其目的都是要提醒用戶去做某件事情乓诽,其本質區(qū)別有兩點:(1)是否需要聯(lián)網?(2)觸發(fā)者是誰?簡單來說,本地推送是由用戶(App使用者)觸發(fā),不需要聯(lián)網,類似的比如ToDoList榄鉴,一對一推送;而遠程推送觸發(fā)者是App運營者蛉抓,為了宣傳產品提高用戶粘合度庆尘,推送形式單對多,需要聯(lián)網巷送。

Step1:iOS8之后推送要求必須注冊App支持的用戶交互類型驶忌,注冊代碼和遠程推送注冊代碼相同如下

UIApplication.sharedApplication().registerUserNotificationSettings(UIUserNotificationSettings(forTypes: [UIUserNotificationType.Badge,UIUserNotificationType.Alert,UIUserNotificationType.Sound]categories: [category]))

如果沒有特殊需求(比如使用到UIMutableUserNotificationAction)可以將后面的categories設置為nil
在介紹下一步之前有必要說一下UILocalNotification的基本屬性便于大家理解使用

屬性名 類型 備注 英文原版
fireDate NSDate? 代表推送的啟動時間 timer-based scheduling
timeZone NSTimeZone? 說明設置的fireDate在哪個時區(qū) the time zone to interpret fireDate in
repeatInterval NSCalendarUnit 重復次數 nil
repeatCalendar NSCalendar? 重復推送時間 nil
alertBody String? 通知內容 pass a string or localized string key to show an alert
alertAction String? 解鎖滑動時的事件 used in UIAlert button or 'slide to unlock...' slider in place of unlock
soundName String 消息推送提示聲音 name of resource in app's bundle to play or UILocalNotificationDefaultSoundName
alertLaunchImage String? 啟動圖片,設置此字段點擊通知時會顯示該圖片 used as the launch image (UILaunchImageFile) when launch button is
alertTitle String? 消息標題笑跛,默認無 defaults to nil. pass a string or localized string key
applicationIconBadgeNumber Int App icon的角標 0 means no change. defaults to 0
userInfo [NSObject : AnyObject]? 自定義參數 nil

Step2:添加推送通知

@IBAction func sendLocalNotification(sender: UIButton) {
        
        let localNotification = UILocalNotification();
        //觸發(fā)通知時間
        localNotification.fireDate = NSDate(timeIntervalSinceNow:5);
        //重復間隔
        //    localNotification.repeatInterval = kCFCalendarUnitMinute;
        localNotification.timeZone = NSTimeZone.defaultTimeZone();
        //通知內容
        localNotification.alertBody = "本地消息推送測試";
        localNotification.applicationIconBadgeNumber = 1;
        localNotification.soundName = UILocalNotificationDefaultSoundName;
        //通知參數
        localNotification.userInfo = ["message": "本地消息"];
        
        localNotification.category = "categoryIdentifier";
        
        UIApplication.sharedApplication().scheduleLocalNotification(localNotification);
    }

至此付魔,本地推送已經完成,但需要說明的是飞蹂,如果推送發(fā)生時几苍,App處于Foreground會直接調用

func application(application: UIApplication, didReceiveLocalNotification notification: UILocalNotification)

如果App處于Background狀態(tài)時,此時觸發(fā)推送會在通知欄產生一條消息陈哑,當你點擊推送消息后才會觸發(fā)上面的方法擦剑。

如果你想實現(xiàn)特殊的消息推送,比如快速點贊芥颈、回復等,可使用UIMutableUserNotificationAction定義不同的action并指定其唯一的identifier赚抡,因為無需打開App可直接將action的activationMode設置為Background爬坑,處理函數為:

func application(application: UIApplication, handleActionWithIdentifier identifier: String?, forLocalNotification notification: UILocalNotification, withResponseInfo responseInfo: [NSObject : AnyObject], completionHandler: () -> Void){
        if identifier == "yourIdentifier"{
            //do something..
        }else{
            //else do...
        }
        completionHandler()
    }
最后編輯于
?著作權歸作者所有,轉載或內容合作請聯(lián)系作者
  • 序言:七十年代末,一起剝皮案震驚了整個濱河市涂臣,隨后出現(xiàn)的幾起案子盾计,更是在濱河造成了極大的恐慌售担,老刑警劉巖,帶你破解...
    沈念sama閱讀 219,539評論 6 508
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件署辉,死亡現(xiàn)場離奇詭異族铆,居然都是意外死亡,警方通過查閱死者的電腦和手機哭尝,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 93,594評論 3 396
  • 文/潘曉璐 我一進店門哥攘,熙熙樓的掌柜王于貴愁眉苦臉地迎上來,“玉大人材鹦,你說我怎么就攤上這事逝淹。” “怎么了桶唐?”我有些...
    開封第一講書人閱讀 165,871評論 0 356
  • 文/不壞的土叔 我叫張陵栅葡,是天一觀的道長。 經常有香客問我尤泽,道長欣簇,這世上最難降的妖魔是什么? 我笑而不...
    開封第一講書人閱讀 58,963評論 1 295
  • 正文 為了忘掉前任坯约,我火速辦了婚禮熊咽,結果婚禮上,老公的妹妹穿的比我還像新娘鬼店。我一直安慰自己网棍,他們只是感情好,可當我...
    茶點故事閱讀 67,984評論 6 393
  • 文/花漫 我一把揭開白布妇智。 她就那樣靜靜地躺著滥玷,像睡著了一般。 火紅的嫁衣襯著肌膚如雪巍棱。 梳的紋絲不亂的頭發(fā)上惑畴,一...
    開封第一講書人閱讀 51,763評論 1 307
  • 那天,我揣著相機與錄音航徙,去河邊找鬼如贷。 笑死,一個胖子當著我的面吹牛到踏,可吹牛的內容都是我干的杠袱。 我是一名探鬼主播,決...
    沈念sama閱讀 40,468評論 3 420
  • 文/蒼蘭香墨 我猛地睜開眼窝稿,長吁一口氣:“原來是場噩夢啊……” “哼楣富!你這毒婦竟也來了?” 一聲冷哼從身側響起伴榔,我...
    開封第一講書人閱讀 39,357評論 0 276
  • 序言:老撾萬榮一對情侶失蹤纹蝴,失蹤者是張志新(化名)和其女友劉穎庄萎,沒想到半個月后,有當地人在樹林里發(fā)現(xiàn)了一具尸體塘安,經...
    沈念sama閱讀 45,850評論 1 317
  • 正文 獨居荒郊野嶺守林人離奇死亡糠涛,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內容為張勛視角 年9月15日...
    茶點故事閱讀 38,002評論 3 338
  • 正文 我和宋清朗相戀三年,在試婚紗的時候發(fā)現(xiàn)自己被綠了兼犯。 大學時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片忍捡。...
    茶點故事閱讀 40,144評論 1 351
  • 序言:一個原本活蹦亂跳的男人離奇死亡,死狀恐怖免都,靈堂內的尸體忽然破棺而出锉罐,到底是詐尸還是另有隱情,我是刑警寧澤绕娘,帶...
    沈念sama閱讀 35,823評論 5 346
  • 正文 年R本政府宣布脓规,位于F島的核電站,受9級特大地震影響险领,放射性物質發(fā)生泄漏侨舆。R本人自食惡果不足惜,卻給世界環(huán)境...
    茶點故事閱讀 41,483評論 3 331
  • 文/蒙蒙 一绢陌、第九天 我趴在偏房一處隱蔽的房頂上張望挨下。 院中可真熱鬧,春花似錦脐湾、人聲如沸臭笆。這莊子的主人今日做“春日...
    開封第一講書人閱讀 32,026評論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽愁铺。三九已至,卻和暖如春闻鉴,著一層夾襖步出監(jiān)牢的瞬間茵乱,已是汗流浹背。 一陣腳步聲響...
    開封第一講書人閱讀 33,150評論 1 272
  • 我被黑心中介騙來泰國打工孟岛, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留瓶竭,地道東北人。 一個月前我還...
    沈念sama閱讀 48,415評論 3 373
  • 正文 我出身青樓渠羞,卻偏偏與公主長得像斤贰,于是被迫代替她去往敵國和親。 傳聞我的和親對象是個殘疾皇子次询,可洞房花燭夜當晚...
    茶點故事閱讀 45,092評論 2 355

推薦閱讀更多精彩內容