zoukankan      html  css  js  c++  java
  • iOS 进阶推送通知之本地通知

    1、推送通知的2种方式

    1)本地推送通知(Local Notification)

    2)远程推送通知(Remote Notification)

    2、通知的作用

    可以让不在前台运行的app,告知用户app内部发生了什么事情

    3、使用场景

    常用来定时提醒用户完成一些任务,比如清理垃圾、记账、买衣服、看电影、玩游戏

    4、推送通知的5中不同的效果

    1)在屏幕顶部显示一块横幅(显示具体内容)

    2)在屏幕中间弹出一个UIAlertView(显示具体内容)

    3)在锁屏界面显示一块横幅(锁屏状态下,显示具体内容)

    4)更新app图标的数字(说明新内容的数量)

    5)播放音效(提醒作用)

    5、推送通知的主要事项

    1)发出推送通知时,如果当前程序正运行在前台,那么推送通知就不会被呈现出来

    2)点击推送通知后,默认会自动打开发出推送通知的app

    3)不管app打开还是关闭,推送通知都能如期发出

    6、什么是本地推送和应用场景

    本地推送:就是不需要联网就能发出的推送通知(不需要服务器的支持)

    应用场景:常用来定时提醒用户完成一些任务,比如清理垃圾、记账、买衣服、看电影、玩游戏

    下面在代码中分析一下本地通知的各个属性:

    1.在AppDelegate的.m文件中

    - (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions {
        //1.iOS8需要添加请求用户的授权
        if ([UIDevice currentDevice].systemVersion.floatValue >=8.0) {
            UIUserNotificationSettings * settings = [UIUserNotificationSettings settingsForTypes:UIUserNotificationTypeBadge | UIUserNotificationTypeAlert | UIUserNotificationTypeSound categories:nil];
            [application registerUserNotificationSettings:settings];
            
        }
        return YES;
    }

    2.在VC的.m文件中

     // 1.创建本地通知
        UILocalNotification *localNote = [[UILocalNotification alloc] init];
        
        // 1.1.设置什么时间弹出
        localNote.fireDate = [NSDate dateWithTimeIntervalSinceNow:5];
        
        // 1.2.设置弹出的内容
        localNote.alertBody = @"CN EZ";
        
        // 1.3.设置锁屏状态下,显示的一个文字
        localNote.alertAction = @"DOTA2";
        
        // 1.4.显示启动图片
        //localNote.alertLaunchImage = @"123";
        
        // 1.5.是否显示alertAction的文字(默认是YES)
        localNote.hasAction = YES;
        
        // 1.6.设置音效
        localNote.soundName = UILocalNotificationDefaultSoundName;
        
        // 1.7.应用图标右上角的提醒数字
        localNote.applicationIconBadgeNumber = 999;
        
        // 1.8.设置UserInfo来传递信息
        // localNote.userInfo = @{@"alertBody" : localNote.alertBody, @"applicationIconBadgeNumber" : @(localNote.applicationIconBadgeNumber)};
        
        // 2.调度通知
        [[UIApplication sharedApplication] scheduleLocalNotification:localNote];

    3、其余属性的简单介绍:

         @property(nonatomic,copy) NSDate *fireDate; // 设置本地推送的时间

         @property(nonatomic,copy) NSTimeZone *timeZone; // 时区

         @property(nonatomic) NSCalendarUnit repeatInterval;     // 重复多少个单元发出一次

         @property(nonatomic,copy) NSCalendar *repeatCalendar;   // 设置日期

         @property(nonatomic,copy) CLRegion *region NS_AVAILABLE_IOS(8_0);  // 比如某一个区域的时候发出通知

         @property(nonatomic,assign) BOOL regionTriggersOnce NS_AVAILABLE_IOS(8_0); // 进入区域是否重复

         // user info

         @property(nonatomic,copy) NSDictionary *userInfo;

     此次Demo的源码下载:https://github.com/fengzhihao123/LocalNotification

  • 相关阅读:
    centos7 docker安装awvs
    screen命令简介-实现linux多窗口
    linux命令重命名
    iptables防止nmap扫描
    cobal strike could not start listener address already in use (bind failed)
    docker简介及安装
    「Sqlserver」数据分析师有理由爱Sqlserver之二-像使用Excel一般地使用Sqlserver
    「Sqlserver」数据分析师有理由爱Sqlserver之一-好用的插件工具推荐
    「PowerBI」分析服务多维数据结构重回关系数据库的一大绝招
    「数据分析」Sqlserver中的窗口函数的精彩应用之数据差距与数据岛(含答案)
  • 原文地址:https://www.cnblogs.com/fengzhihao/p/4957196.html
Copyright © 2011-2022 走看看