IOS 本地通知,IOS通知

來源:互聯網
上載者:User

IOS 本地通知,IOS通知

  在行動裝置上,通常只有一個應用是處於活躍狀態,如果這個時候其他的一些應用接收到新的訊息或者發生變化,需要通知給使用者,就可以通過通知機制來告知使用者。此外,安裝在裝置上的App很多都成為了殭屍應用,安裝之後就很少再開啟使用,為了避免這種情況,在程式中可以添加通知,在指定的時刻來提示使用者使用。

  在IOS開發中,通知機制大致分為兩大類,本地通知和遠程通知,兩種方式實現的效果一樣,都是通過橫幅或者彈出提醒的方式告知使用者,點擊通知時可以開啟App,但是它們實現的原理不一樣。在這裡,主要來講解一下本地通知。

  本地通知是由本地的App自己發出的,它是一種基於時間行為的通知形式,它是在按home鍵退出App或者鎖屏鍵退出後觸發的,在對應的App的icon上顯示通知的條數。本地通知比較實用,比如鬧鐘定時、代辦事項提醒等都是通過它來實現的。

  如果實現了通知,使用者在第一次開啟App的時候,會提示是否開啟通知,如果使用者選不允許,就不能使用通知這個功能,除非使用者取去設定中再次進行設定。雖然本地通知能夠提示使用者來使用App,但是也不要頻繁的通知,否則會適得其反。

一、使用本地通知的步驟

1. 建立UILocationNotification

2. 設定處理通知的時間fireDate

3. 配置通知的內容:通知主體、通知聲音、表徵圖文字等

4. 配置通知傳遞的自訂資料(可選)

5. 調用通知

二、本地通知代碼實現
(一)先去AppDelegate.m中的didFinishLaunchingWithOptions

  方法中判斷一下是否已經獲得建立本地通知的授權,如果沒有獲得,請求授權。

  當使用者第一次開啟App時,會彈出介面,詢問是否允許實現通知,如果使用者選擇不允許,那麼則無法發送通知,除非去設定中進行設定,彈出介面:

 

  代碼:

  if ([[UIApplication sharedApplication]currentUserNotificationSettings].types==UIUserNotificationTypeNone){                [[UIApplication sharedApplication]registerUserNotificationSettings:[UIUserNotificationSettings settingsForTypes:UIUserNotificationTypeAlert|UIUserNotificationTypeBadge|UIUserNotificationTypeSound  categories:nil]];    }
(二)當退到後台時,添加通知

   當退到後台時,添加通知,可以在AppDelegate.m中的 applicationDidEnterBackground:中實現,在這裡調用添加通知的方法

(三)自訂添加通知的方法

  在這裡設定通知的內容,並調用通知

  代碼:

-(void)addLocalNotification{        //定義本地通知對象    UILocalNotification *notification=[[UILocalNotification alloc]init];    //設定調用時間    notification.fireDate=[NSDate dateWithTimeIntervalSinceNow:5.0];//通知觸發的時間,10s以後    notification.repeatInterval=2;//通知重複次數            //    NSCalendar *calendar=[NSCalendar currentCalendar];    //    [calendar setTimeZone:[NSTimeZone defaultTimeZone]];    //    notification.repeatCalendar=calendar;//當前日曆,使用前最好設定時區等資訊以便能夠自動同步時間        //設定通知屬性    notification.alertBody=@"這是通知主體啊"; //通知主體    notification.applicationIconBadgeNumber=1;//應用程式圖示右上方顯示的訊息數    notification.alertAction=@"開啟應用"; //待機介面的滑動動作提示    notification.alertLaunchImage=@"Default";//通過點擊通知開啟應用時的啟動圖片,這裡使用程式啟動圖片    //notification.soundName=UILocalNotificationDefaultSoundName;//收到通知時播放的聲音,預設訊息聲音    //notification.soundName=@"msg.caf";//通知聲音(需要真機才能聽到聲音)        //設定使用者資訊    notification.userInfo=@{@"id":@1,@"user":@"jredu"};//綁定到通知上的其他附加資訊        //調用通知    [[UIApplication sharedApplication] scheduleLocalNotification:notification];}
(四)效果展示

 當程式退到後台時,通知的效果

 

當鎖屏時,通知的效果

 

(五)點擊通知,可以再次開啟應用程式

  這個時候應該修改應用程式的表徵圖,讓右上方的未讀通知條數重設為0,可以在applicationWillEnterForeground:中實現

  代碼:

-(void)applicationWillEnterForeground:(UIApplication *)application {     [[UIApplication sharedApplication]setApplicationIconBadgeNumber:0];//進入前台取消應用訊息表徵圖}

 

  想要瞭解更多內容的小夥伴,可以點擊查看源碼,親自運行測試。

  疑問諮詢或技術交流,請加入官方QQ群: (452379712)

 

作者:傑瑞教育
出處:http://www.cnblogs.com/jerehedu/ 
本文著作權歸煙台傑瑞教育科技有限公司和部落格園共有,歡迎轉載,但未經作者同意必須保留此段聲明,且在文章頁面明顯位置給出原文串連,否則保留追究法律責任的權利。 

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.