• ios10 UNNtificationRequest UNUserNotificationCenter的应用 推送之本地推送


     iOS10 已经 “deprected” 我们的UILocalNotification 采用了全新的UNUserNotificationCenter;

     1 首先,你需要引进<UserNotifications/UserNotifications.h>

    #import <UserNotifications/UserNotifications.h>

      2 然后,在AppDelegate.m中,完成推送通知的注册和请求授权;

    - (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions {
        // 获取通知中心--单例
        UNUserNotificationCenter *center = [UNUserNotificationCenter currentNotificationCenter];
        //设置代理
        center.delegate = self;
    
        //获取用户的推送授权 iOS 10新方法
        [center requestAuthorizationWithOptions:(UNAuthorizationOptionAlert + UNAuthorizationOptionSound)
                              completionHandler:^(BOOL granted, NSError * _Nullable error) {
                                
                              }];
    
        //获取当前的通知设置,UNNotificationSettings 是只读对象,readOnly,只能通过以下方法获取
        [center getNotificationSettingsWithCompletionHandler:^(UNNotificationSettings * _Nonnull settings) {
    
        }];
        return YES;
    }

     3 完成注册,之后是通过使用UNUserNotificationCenter 来实现推送通知;

      在要使用本地通知时,通过单例(UNUserNotificationCenter)来实现,通过一个button的点击来启动通知为例:

    #pramark mark - 点击按钮发送本地通知事件
    - (void) buttonClickAction{
    
        //  > 使用 UNUserNotificationCenter 来管理通知-- 单例
        UNUserNotificationCenter* center = [UNUserNotificationCenter currentNotificationCenter];
        
        // > 需创建一个包含待通知内容的 UNMutableNotificationContent 对象,可变    UNNotificationContent        对象,不可变
       //  > 通知内容
        UNMutableNotificationContent* content = [[UNMutableNotificationContent alloc] init];
       // > 通知的title
        content.title = [NSString localizedUserNotificationStringForKey:@"推送的标题" arguments:nil];
      // > 通知的要通知内容
        content.body = [NSString localizedUserNotificationStringForKey:@"======推送的消息体======"
                                                             arguments:nil];
        // > 通知的提示声音
        content.sound = [UNNotificationSound defaultSound];
        
        //  > 通知的延时执行
        UNTimeIntervalNotificationTrigger* trigger = [UNTimeIntervalNotificationTrigger
                                                      triggerWithTimeInterval:5 repeats:NO];
        
        UNNotificationRequest* request = [UNNotificationRequest requestWithIdentifier:@"FiveSecond"
                                                                              content:content trigger:trigger];
        
        //添加推送通知,等待通知即可!
        [center addNotificationRequest:request withCompletionHandler:^(NSError * _Nullable error) {
            
      // > 可在此设置添加后的一些设置
      // > 例如alertVC。。
        }];
    
    }

    iOS 10 远程推送详见  “ios10   UNNtificationRequest  UNUserNotificationCenter的应用  推送之远程推送”!

     

  • 相关阅读:
    SpringBoot配置默认日志logback
    SpringBoot静态资源映射、拦截器、过滤器使用
    windows系统安装两个Mysql服务
    SpringBoot使用Jsp开发Web项目
    SpringBoot使用Thymeleaf开发Web项目
    SpringBoot启动原理
    javascript Date
    UDP发送数据测试
    自动迁移
    EF 自测例子
  • 原文地址:https://www.cnblogs.com/code-Officer/p/5957455.html
Copyright © 2020-2023  润新知