推送消息出現(xiàn)情景和處理辦法
1. 當(dāng)程序處于關(guān)閉狀態(tài)收到推送消息時,點擊推送圖標(biāo)會調(diào)用- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions這個方法,那么消息給通過launchOptions這個參數(shù)獲取到。
2. 當(dāng)程序處于前臺工作時,這時候若收到消息推送,會調(diào)用- (void)application:(UIApplication *)application didReceiveRemoteNotification:(NSDictionary *)userInfo這個方法
3. 當(dāng)程序處于后臺運行時,這時候若收到消息推送,如果點擊消息或者點擊消息圖標(biāo)時,也會調(diào)用- (void)application:(UIApplication*)application didReceiveRemoteNotification:(NSDictionary *)userInfo這個方法
判斷用戶是否開啟通知
lettypes =UIApplication.shared.currentUserNotificationSettings?.types
publicstaticvarbadge:UIUserNotificationType{get}// 數(shù)字提示
publicstaticvarsound:UIUserNotificationType{get}// 聲音
publicstaticvaralert:UIUserNotificationType{get}// 提醒
如果開啟了完整的通知,那么 types 就包含了以上三個,所以如果需要嚴(yán)格的判斷是否開始了通知:
types.contains([.alert, .badge, .sound])
如果只是判斷是不是顯示通知提醒的彈窗那么就是:
types.contains([.alert])