一、蘋果中的幾種通知
1仇参、廣播通知(NSNotificationCenter)
1)實(shí)現(xiàn)一個對象對多個對象的通信
2)是抽象的奄侠,肉眼看不到的
2钝吮、推送通知
1)可以讓不在前臺運(yùn)行的app藻治,告知用戶app內(nèi)部發(fā)生了什么事情
2)肉眼看看到的
3)設(shè)置提示樣式
設(shè)置 ---- 通知中心? 點(diǎn)擊任意應(yīng)用通知? 提示樣式
4)推送通知有兩種
本地通知(Local Notification)
遠(yuǎn)程通知(Remote Notification)
二碘勉、本地推送通知
1、概念
不需要聯(lián)網(wǎng)就能發(fā)出的推送通知(不需要服務(wù)器的支持)
2桩卵、使用場景
常用來定時提醒用戶完成一些任務(wù)验靡,即使程序被殺死提示照樣有,例如:記事本雏节、備忘錄等
3晴叨、如何發(fā)送出本地通知
1)創(chuàng)建本地通知對象
UILocalNotification *localN = [[UILocalNotification alloc]init];
2) 設(shè)置本地推送通知屬性
觸發(fā)時間
fireDate
通知的具體內(nèi)容
alertBody
鎖屏?xí)r的動作標(biāo)題
alertAction
音效文件名
soundName
app圖標(biāo)數(shù)字
applicationIconBadgeNumber
點(diǎn)擊通知, 打開程序時候顯示的啟動圖片
localNote.alertLaunchImage
3) 調(diào)度本地推送通知
[[UIApplication sharedApplication] scheduleLocalNotification:localN];
4) 取消所有通知
UIApplication *app = [UIApplication sharedApplication];
[app cancelAllLocalNotifications];
5)獲取授權(quán)
UIUserNotificationSettings *seeting = [UIUserNotificationSettings settingsForTypes:UIUserNotificationTypeBadge | UIUserNotificationTypeSound categories:nil];
[application registerUserNotificationSettings:seeting];
三、監(jiān)聽本地通知點(diǎn)擊
1矾屯、點(diǎn)擊通知兼蕊,應(yīng)用程序進(jìn)入前臺或者在前臺時調(diào)用,如果程序殺死件蚕,點(diǎn)擊通知信息不執(zhí)行
- (void)application:(UIApplication *)application didReceiveLocalNotification:(UILocalNotification *)notification{
}
2孙技、如果程序被殺死后還想點(diǎn)擊通知信息進(jìn)入相應(yīng)界面,需要在下面方法里做相應(yīng)判斷
- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions {
if(launchOptions){
UILocalNotification *localNote = launchOptions[UIApplicationLaunchOptionsLocalNotificationKey];
}
}
3排作、在Appdelegate向window添加試圖時牵啦,要重寫window
/////遠(yuǎn)程推送////
一、遠(yuǎn)程通知基本概念
1妄痪、從遠(yuǎn)程服務(wù)器推送給客戶端的通知(需要聯(lián)網(wǎng))
2哈雏、又稱APNS(Apple Push Notification Services)
3、為什么需要遠(yuǎn)程推送通知
1)傳統(tǒng)獲取數(shù)據(jù)的局限性
只要用戶關(guān)閉了app,就無法跟服務(wù)器溝通衫生,無法從服務(wù)器上獲取最新的數(shù)據(jù)內(nèi)容
2)遠(yuǎn)程推送通知可以解決以上問題
不管用戶打開還是關(guān)閉app,只要聯(lián)網(wǎng)了裳瘪,都能接到服務(wù)器推送的遠(yuǎn)程通知
二、遠(yuǎn)程通知使用須知
所有蘋果設(shè)備罪针,在聯(lián)網(wǎng)狀態(tài)下彭羹,都會與蘋果的服務(wù)器建立長鏈接
1)長鏈接
只要聯(lián)網(wǎng)了,就一直建立鏈接
2)長連接作用
時間校準(zhǔn)
系統(tǒng)升級
查找iPhone
3)長鏈接的好處
數(shù)據(jù)傳輸速度快
數(shù)據(jù)保持最新狀態(tài)
三泪酱、推送通知原理
查看課件里面遠(yuǎn)程推送原理
1派殷、發(fā)送設(shè)備的UDID和應(yīng)用的Bundle Identifer給APNS服務(wù)器
2、經(jīng)蘋果加密生成一個deviceToken,通過devieceToken能找到某個設(shè)備上的某個應(yīng)用程序
3墓阀、發(fā)送當(dāng)前用戶張三的deviceToken和用戶的標(biāo)志(比如id或qq)給QQ服務(wù)器
4毡惜、QQ服務(wù)器將發(fā)送過來的內(nèi)容存到數(shù)據(jù)庫
5、李四的手機(jī)給張三發(fā)信息--吃了么斯撮,實(shí)際是先發(fā)送到服務(wù)器
6经伙、去數(shù)據(jù)庫查詢張三的deviceToken
7、將內(nèi)容發(fā)送給蘋果的APNS
8吮成、APNS通過deviceToken找到張三現(xiàn)在的設(shè)備橱乱,并發(fā)送相應(yīng)信息
四、開發(fā)iOS程序的推送功能粱甫,iOS端需要做的事情
1泳叠、向蘋果請求獲得deviceToken
2、得到蘋果返回的deviceToken
3茶宵、發(fā)送deviceToken給公司的服務(wù)器
4危纫、監(jiān)聽用戶對通知的點(diǎn)擊
五、調(diào)試iOS遠(yuǎn)程推送功能乌庶,必備條件
1种蝶、真機(jī)
2、調(diào)試推送需要的證書文件瞒大,
1)aps_development.cer
某臺電腦就能調(diào)試app的推送服務(wù)
2)iPhone5_qq.mobileprovision
某臺電腦就能利用某臺設(shè)備調(diào)試某個程序
3螃征、發(fā)布具有推送服務(wù)的app
1)aps_production.cer
如果發(fā)布的程序中包含了推送服務(wù),就必須安裝這個證書
2)qq.mobileprovison
某臺電腦就能發(fā)布某個程序