前提
本文目的是方便以后自己查看,還請(qǐng)各位朋友高抬貴手寸潦、不喜勿噴色鸳,謝謝??????
一、極光推送通知
1.當(dāng)app處于后臺(tái)(當(dāng)前為桌面或者使用其他應(yīng)用時(shí))
app收到通知時(shí)见转,通知欄正常顯示通知命雀,但是沒(méi)有方法來(lái)接收發(fā)送的消息。當(dāng)點(diǎn)擊通知時(shí)斩箫,會(huì)跳到app里面吏砂,這時(shí)有執(zhí)行接收消息的方法:func jpushNotificationCenter(_center:UNUserNotificationCenter!, didReceive response:UNNotificationResponse!, withCompletionHandler completionHandler: (() ->Void)!);
2.當(dāng)app處于前臺(tái)
app收到通知時(shí)乘客,通知欄正常顯示通知狐血,這時(shí)有執(zhí)行接收消息的方法:func jpushNotificationCenter(_center:UNUserNotificationCenter!, willPresent notification:UNNotification!, withCompletionHandler completionHandler: ((Int) ->Void)!);當(dāng)點(diǎn)擊通知時(shí)易核,這時(shí)有執(zhí)行接收消息的方法:func jpushNotificationCenter(_center:UNUserNotificationCenter!, didReceive response:UNNotificationResponse!, withCompletionHandler completionHandler: (() ->Void)!)匈织;
二、極光推送自定義消息
1.當(dāng)app處于前臺(tái)耸成、后臺(tái)(app沒(méi)有銷(xiāo)毀报亩,處理情況一樣)
app收到通知時(shí)浴鸿,是沒(méi)有通知顯示的,需要自己添加本地通知弦追,后面會(huì)有介紹岳链,這時(shí)有執(zhí)行接收消息的方法:func networkDidReceiveMessage(notification:Notification);當(dāng)點(diǎn)擊通知時(shí)劲件,這時(shí)有執(zhí)行接收消息的方法:func jpushNotificationCenter(_center:UNUserNotificationCenter!, didReceive response:UNNotificationResponse!, withCompletionHandler completionHandler: (() ->Void)!)掸哑;
三、添加本地通知
這里添加一張示例截圖零远,代碼不多苗分,以供參考。
四牵辣、推送通知方法
1.iOS 6以下
基于iOS 6 及以下的系統(tǒng)版本摔癣,如果 App狀態(tài)為正在前臺(tái)或者點(diǎn)擊通知欄的通知消息,那么此函數(shù)將被調(diào)用纬向≡褡牵可通過(guò)AppDelegate的applicationState是否為UIApplicationStateActive判斷程序是否在前臺(tái)運(yùn)行。
func application(_application:UIApplication, didReceiveRemoteNotification userInfo: [AnyHashable:Any])
2.iOS 7以上且10以下
基于iOS 7以上且10以下的系統(tǒng)版本逾条,使用Remote Notification 特性那么處理函數(shù)需要使用
func application(_application:UIApplication, didReceiveRemoteNotification userInfo: [AnyHashable:Any], fetchCompletionHandler completionHandler:@escaping(UIBackgroundFetchResult) ->Void)
3.iOS 10以上
基于iOS 10及以上的系統(tǒng)版本琢岩,原didReceiveRemoteNotification將會(huì)被系統(tǒng)廢棄,由新增UserNotifications Framework中的func userNotificationCenter(_center:UNUserNotificationCenter, willPresent notification:UNNotification, withCompletionHandler completionHandler:@escaping(UNNotificationPresentationOptions) ->Void)或者func userNotificationCenter(_center:UNUserNotificationCenter, didReceive response:UNNotificationResponse, withCompletionHandler completionHandler:@escaping() ->Void)方法替代师脂。