亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb

首頁 > 系統 > iOS > 正文

iOS推送之本地通知UILocalNotification

2020-07-26 03:13:05
字體:
來源:轉載
供稿:網友

摘要: Notification是智能手機應用編程中非常常用的一種傳遞信息的機制,而且可以非常好的節省資源,不用消耗資源來不停地檢查信息狀態(Pooling),在iOS下應用分為兩種不同的Notification種類,本地和遠程。本地的Notification由iOS下NotificationManager統一管理,只需要將封裝好的本地Notification對象加入到系統Notification管理機制隊列中,系統會在指定的時間激發將本地Notification,應用只需設計好處理Notification的方法就完成了整個Notification流程了。
Notification是智能手機應用編程中非常常用的一種傳遞信息的機制,而且可以非常好的節省資源,不用消耗資源來不停地檢查信息狀態(Pooling),在iOS下應用分為兩種不同的Notification種類,本地和遠程。本地的Notification由iOS下NotificationManager統一管理,只需要將封裝好的本地Notification對象加入到系統Notification管理機制隊列中,系統會在指定的時間激發將本地Notification,應用只需設計好處理Notification的方法就完成了整個Notification流程了。

本地Notification所使用的對象是UILocalNotification,UILocalNotification的屬性涵蓋了所有處理Notification需要的內容。UILocalNotification的屬性有fireDate、timeZone、repeatInterval、repeatCalendar、alertBody、 alertAction、hasAction、alertLaunchImage、applicationIconBadgeNumber、 soundName和userInfo。

UILocalNotification的調度

其中fireDate、timeZone、repeatInterval和repeatCalendar是用于UILocalNotification的調度。fireDate是UILocalNotification的激發的確切時間。timeZone是UILocalNotification激發時間是否根據時區改變而改變,如果設置為nil的話,那么UILocalNotification將在一段時候后被激發,而不是某一個確切時間被激發。 repeatInterval是UILocalNotification被重復激發之間的時間差,不過時間差是完全根據日歷單位(NSCalendarUnit)的,例如每周激發的單位,NSWeekCalendarUnit,如果不設置的話,將不會重復激發。 repeatCalendar是UILocalNotification重復激發所使用的日歷單位需要參考的日歷,如果不設置的話,系統默認的日歷將被作為參考日歷。

UILocalNotification的提醒內容

alertBody、alertAction、hasAction和alertLaunchImage是當應用不在運行時,系統處理

1、增加一個本地推送

//設置20秒之后 NSDate *date = [NSDate dateWithTimeIntervalSinceNow:20];/*NSDateFormatter *formatter = [[NSDateFormatter alloc] init]; [formatter setDateFormat:@"HH:mm:ss"]; NSDate *now = [formatter dateFromString:@"15:00:00"];//觸發通知的時間*/ //chuagjian一個本地推送 UILocalNotification *noti = [[[UILocalNotification alloc] init] autorelease]; if (noti) {  //設置推送時間  noti.fireDate = date;//=now  //設置時區  noti.timeZone = [NSTimeZone defaultTimeZone];  //設置重復間隔  noti.repeatInterval = NSWeekCalendarUnit;  //推送聲音  noti.soundName = UILocalNotificationDefaultSoundName;  //內容  noti.alertBody = @"推送內容";  //顯示在icon上的紅色圈中的數子  noti.applicationIconBadgeNumber = 1;  //設置userinfo 方便在之后需要撤銷的時候使用  NSDictionary *infoDic = [NSDictionary dictionaryWithObject:@"name" forKey:@"key"];  noti.userInfo = infoDic;  //添加推送到uiapplication    UIApplication *app = [UIApplication sharedApplication];  [app scheduleLocalNotification:noti];  }

2、程序運行時接收到本地推送消息

- (void)application:(UIApplication *)application didReceiveLocalNotification:(UILocalNotification*)notification{UIAlertView *alert = [[UIAlertView alloc] initWithTitle:@"接收到本地提醒 in app"message:notification.alertBody delegate:nil cancelButtonTitle:@"確定" otherButtonTitles:nil];[alert show];//這里,你就可以通過notification的useinfo,干一些你想做的事情了application.applicationIconBadgeNumber -= 1;}

3、取消一個本地推送

UIApplication *app = [UIApplication sharedApplication]; //獲取本地推送數組 NSArray *localArr = [app scheduledLocalNotifications];  //聲明本地通知對象 UILocalNotification *localNoti;  if (localArr) {  for (UILocalNotification *noti in localArr) {   NSDictionary *dict = noti.userInfo;   if (dict) {    NSString *inKey = [dict objectForKey:@"key"];    if ([inKey isEqualToString:key]) {     if (localNoti){      [localNoti release];      localNoti = nil;     }     localNoti = [noti retain];     break;    }   }  }    //判斷是否找到已經存在的相同key的推送  if (!localNoti) {   //不存在 初始化   localNoti = [[UILocalNotification alloc] init];  }    if (localNoti && !state) {   //不推送 取消推送   [app cancelLocalNotification:localNoti];   [localNoti release];   return;  }}

4.兩種方式取消注冊的本地通知,一種是取消指定的通知,第二種是取消所有的注冊通知:

[[UIApplication sharedApplication] cancelLocalNotification:localNotification]; [[UIApplication sharedApplication] cancelAllLocalNotification]; 

5.iOS5的四種通知類型

5.1. 橫幅(Banner)

橫幅通知是在iOS5中出現的新特性,是顯示在屏幕頂部的橫條,幾秒鐘后會自動消失。一條橫幅通知會顯示程序的小圖標(低分屏下顯示29×29的圖標,高分屏顯示58×58的圖標),程序的名字和通知的內容。小圖標可以幫助用戶一眼就看清楚是哪一個應用程序在提醒他們。

5.2. 提醒(Alert)

提醒通知不會自動消失,需要用戶與之交互才能關閉。設計師需要設計通知的具體內容,有時還要action button 設計title。整個提醒通知的背景樣式,包括里面的按鈕的樣式都是不可變的,所以設計師和開發者就不要在這里發揮創意了。Android由于其開放性,我們是可以使用自己設計的控件的,而iOS這樣做可能是為了保持UI風格一致性。

5.3. 標記(Badge)

標記通知是顯示在程序圖標的右上角的紅色橢圓形標記,里面顯示的數字表示需要用戶處理的通知的數量。同樣地,標記的顏色和形狀、大小也是不可以更改的。App Store中有更新的應用程序的數量,Mail中收到的未讀郵件的數量都是用標記通知用戶的。

5.4. 聲音(Sound)

聲音提示也是iOS的一種通知方式,支持自定義,可以與前面三種通知類型搭配使用。

6.本地通知和推送通知

iOS應用程序會使用本地通知或推送通知來提醒用戶:

6.1. 本地通知

應用程序的本地通知是由用戶的iOS設備生成并發布的,無論這個應用程序是否運行在前臺。就像一個日歷應用,或者是一個to-do list應用,可以發出一條本地通知提醒用戶馬上有一個會議要開始了。

6.2. 推送通知

應用程序的推送通知是這樣發布的:該應用的遠程服務器(Provider)先發出一條通知給蘋果的推送通知服務(Apple Push Notification service, APNS),蘋果的通知服務器再把這個通知推送給所有安裝了這個應用的iOS設備。

如果要使用推送通知,必須先在蘋果的推送通知服務里注冊你要使用哪幾種類型的通知,就比如下面的一段代碼就表示同時注冊了標記和聲音兩種類型的通知:

- (void)applicationDidFinishLaunching:(UIApplication *)app {// other setup tasks here….[[UIApplication sharedApplication] registerForRemoteNotificationTypes:(UIRemoteNotificationTypeBadge|UIRemoteNotificationTypeSound)];}

如何使用各種通知

使用本地通知的應用程序可以使用橫幅、提醒、標記、聲音,但是使用推送通知的應用程序需要先注冊要使用的通知類型。

在使用通知的時候需要注意以下幾點:

1. 保證標記的內容是最新的

2. 對同一事件不要發出多個通知

3. 通知內容不用包含應用程序的名稱

對于標記型通知,當所有的事項都解決后,標記會自動消失。

在橫幅和提醒中,以及頂部的通知中心里,iOS系統會自動在消息里顯示應用程序的名稱,所以在設計通知的內容時,就無需包含app的名稱了。

在設計通知的內容時,還需要注意:

1. 關注于信息的表達,而不是用戶的動作。避免提示用戶去點哪一個按鈕或者是怎樣打開app

2. 簡短,最好不超過兩行。長信息難以快速閱讀,而且必然會有滾動條

3. 使用句式大寫(sentence-style capitalization,第一個單詞的首字母大寫)和合適的標點符號,結尾一般使用句號

關于“提醒”

一條提醒可能會包含一到兩個按鈕。對于有兩個按鈕的提醒,需要把關閉提醒的按鈕放在左邊,把action button放在右邊。

點左邊的按鈕會關閉提醒,點右邊的按鈕會關閉這條提醒并打開應用。

如果只有一個按鈕,這個按鈕應該是一個確定按鈕。

點擊這個確定按鈕也只會關閉提醒,而不會打開應用。

對于提醒通知,在設計action button的title的時候需要注意:

1. title能準確描述打開應用的動作。比如點擊Play按鈕,就能夠打開這個游戲,用戶能夠立刻玩

2. 使用標題式大寫(title-style capitalization,每個單詞的首字母都大寫)

3. 足夠簡短

在鎖屏狀態的時候收到新提醒通知,會把action button的title顯示到“slide to view”的信息里,替換掉“view”這個詞,并且將所有字母都轉化為小寫。

關于“聲音”

對于聲音提示,用戶沒有使用手機的時候聲音可以吸引他們的注意力,這可以避免用戶遺漏重要信息。

我們可以使用系統內置的聲音,也可以自定義聲音。如果使用自定義的聲音,應該保證它足夠簡短,而且是精心制作的。

關于“通知欄”

只要不是鎖屏狀態,都可以從屏幕頂部向下滑打開通知中心。

如果是在游戲里面,比如水果忍者這種游戲,為了避免手指不小心滑到屏幕外而打開了通知中心,iOS5提高了打開通知中心的難度:先從屏幕頂部下拉出現有類似防滑紋的下拉條,出現下拉條后再次向下拖拽,才可打開通知中心,否則幾秒鐘后下拉條會自動收起。此處帶防滑紋下拉條的設計可以幫助新用戶迅速建立下拉打開通知中心的心智模型。

OS5對下拉通知欄里的通知進行了組織,同一個app的通知根據時間先后順序組合在一起。刪除某個app的通知消息需要先點右邊的“X”按鈕,“X”按鈕變為“清除”,用戶再次點擊清除才能移除這個app下的所有通知。兩步操作降低誤刪幾率,而且其交互形式也比常見的彈出二次確認的模態窗口友好得多。

以上就是本文的全部內容,希望對大家的學習有所幫助,也希望大家多多支持武林網。

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb
日本高清视频精品| 在线视频欧美日韩精品| 97婷婷大伊香蕉精品视频| 最近2019免费中文字幕视频三| 国产成人精品av在线| 日韩av黄色在线观看| 国产第一区电影| 国产日产欧美a一级在线| 亚洲丁香婷深爱综合| 秋霞午夜一区二区| 亚洲欧美日韩久久久久久| 日产日韩在线亚洲欧美| 亚洲一区二区久久| 日韩美女在线观看一区| 国产精品自拍小视频| 超碰精品一区二区三区乱码| 永久免费看mv网站入口亚洲| 精品国产精品自拍| 欧美日韩日本国产| 欧美激情在线一区| 国产精品中文字幕久久久| 国产手机视频精品| 尤物九九久久国产精品的特点| 日韩免费观看在线观看| 亚洲欧美在线播放| 日本精品视频网站| 日韩免费在线观看视频| 日韩中文字幕在线看| 欧美性猛交xxxx黑人| 亚洲黄色av网站| 中文国产亚洲喷潮| 亚洲人成在线观| 亚洲欧美激情另类校园| 欧美激情在线播放| 国产亚洲人成网站在线观看| 亚洲精品成人久久电影| 欧美夜福利tv在线| 97婷婷大伊香蕉精品视频| 亚洲男人的天堂在线播放| 精品伊人久久97| 国模精品视频一区二区| 国产精品永久免费观看| 97精品国产97久久久久久免费| 欧美精品videosex性欧美| 黄色成人在线免费| 亚洲精品永久免费| 日韩欧美国产中文字幕| 亚洲国产日韩欧美在线图片| 91在线视频成人| 91精品国产电影| 亚洲第一男人天堂| 亚洲图片欧洲图片av| 热草久综合在线| 91精品免费久久久久久久久| 日韩在线免费视频| 国产精品视频久久久| 亚洲最大成人免费视频| 亚洲亚裔videos黑人hd| 日韩视频免费中文字幕| 欧美极品在线播放| 庆余年2免费日韩剧观看大牛| 超碰91人人草人人干| 91大神福利视频在线| 国产mv久久久| 国产在线久久久| 91色视频在线观看| 一区二区三区高清国产| 欧美日韩亚洲视频| 亚洲中国色老太| 日韩在线观看免费高清| 奇门遁甲1982国语版免费观看高清| 98精品国产高清在线xxxx天堂| 中文字幕在线精品| 亚洲伊人第一页| 日韩欧美国产激情| 久久精品视频一| 亚洲小视频在线| 久久青草福利网站| 亚洲高清一二三区| 福利一区福利二区微拍刺激| 青青在线视频一区二区三区| 日韩欧美亚洲范冰冰与中字| 国外色69视频在线观看| 国产精品日韩在线一区| 日本成人精品在线| 久久久久久91| 日本精品一区二区三区在线| 2018国产精品视频| 亚洲天堂免费在线| 在线看欧美日韩| 在线成人中文字幕| 亚洲国产精品嫩草影院久久| 亚洲欧美激情精品一区二区| 久久在线观看视频| 在线激情影院一区| 视频在线观看一区二区| 久久精品亚洲热| 久久精品最新地址| 久久午夜a级毛片| 亚洲小视频在线观看| 欧美www视频在线观看| 国产aⅴ夜夜欢一区二区三区| 国产精品久久久久久久久久新婚| 久久精品福利视频| 国产精品久久久久久久午夜| 国产精品福利久久久| 亚洲影院高清在线| 欧美中文字幕视频在线观看| 精品国产乱码久久久久久婷婷| 韩日精品中文字幕| 92看片淫黄大片欧美看国产片| 成人网在线免费观看| 国产精品久久久久久久久久新婚| 57pao国产成人免费| 欧美成人一二三| 亚洲国产精品久久精品怡红院| 国产精品av电影| 91沈先生在线观看| 亚洲第一福利网| 亚洲伊人第一页| 亚洲白拍色综合图区| 国产a∨精品一区二区三区不卡| 欧美激情精品久久久久久免费印度| 亚洲日韩中文字幕| 国产丝袜一区视频在线观看| 欧美性极品xxxx娇小| 亚洲图片欧美午夜| 北条麻妃久久精品| 中文字幕亚洲无线码在线一区| 国产日韩中文字幕在线| 欧美性生交大片免费| 一区二区日韩精品| 日韩av中文字幕在线播放| 日韩欧美在线第一页| 欧美午夜宅男影院在线观看| 日韩少妇与小伙激情| 中文字幕一区二区精品| 久久精品成人欧美大片古装| 91网站免费看| 国产精品三级久久久久久电影| 一本色道久久综合亚洲精品小说| 久久久精品国产| 亚洲的天堂在线中文字幕| 欧美国产欧美亚洲国产日韩mv天天看完整| 成人做爽爽免费视频| 秋霞成人午夜鲁丝一区二区三区| 在线观看欧美日韩国产| 欧美黑人xxxx| 91久久精品久久国产性色也91| 欧美激情视频在线免费观看 欧美视频免费一| 欧美性xxxxxxx| 亚洲已满18点击进入在线看片| 国产精品黄色影片导航在线观看| 欧美日韩一二三四五区| 亚洲免费人成在线视频观看| 亚洲电影免费在线观看| 国产精品一久久香蕉国产线看观看| 韩剧1988在线观看免费完整版| 欧美成人精品在线播放| 欧美性生交大片免网| 日本成人精品在线| 中文国产成人精品| 久久久久免费视频| 久久久久久久国产精品|