推送消息出现情景和处理办法
1. 当程序处于关闭状态收到推送消息时,点击推送图标会调用- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions这个方法,那么消息给通过launchOptions这个参数获取到。
2. 当程序处于前台工作时,这时候若收到消息推送,会调用- (void)application:(UIApplication *)application didReceiveRemoteNotification:(NSDictionary *)userInfo这个方法
3. 当程序处于后台运行时,这时候若收到消息推送,如果点击消息或者点击消息图标时,也会调用- (void)application:(UIApplication*)application didReceiveRemoteNotification:(NSDictionary *)userInfo这个方法
判断用户是否开启通知
lettypes =UIApplication.shared.currentUserNotificationSettings?.types
publicstaticvarbadge:UIUserNotificationType{get}// 数字提示
publicstaticvarsound:UIUserNotificationType{get}// 声音
publicstaticvaralert:UIUserNotificationType{get}// 提醒
如果开启了完整的通知,那么 types 就包含了以上三个,所以如果需要严格的判断是否开始了通知:
types.contains([.alert, .badge, .sound])
如果只是判断是不是显示通知提醒的弹窗那么就是:
types.contains([.alert])