第一步:创建本地推送

本地通知

UILocalNotification

// 创建⼀一个本地推送 UILocalNotification * notification = [[UILocalNotification alloc] init];

//设置10秒之后
NSDate *pushDate = [NSDate

dateWithTimeIntervalSinceNow:10];

if (notification != nil) { // 设置推送时间

notification.fireDate = pushDate; // 设置时区
notification.timeZone = [NSTimeZone

defaultTimeZone];
// 设置重复间隔

notification.repeatInterval =
kCFCalendarUnitDay;

// 推送声⾳音

notification.soundName =
UILocalNotificationDefaultSoundName;

// 推送内容
notification.alertBody = @"推送内容";
// 显⽰示在icon上的红⾊色圈中的数⼦子
notification.applicationIconBadgeNumber = 1;
// 设置userinfo ⽅方便在之后需要撤销的时候使⽤用
NSDictionary *info = [NSDictionary

dictionaryWithObject:@"name"forKey:@"key"];
notification.userInfo = info;

//添加推送到UIApplication

        UIApplication *app = [UIApplication
sharedApplication];

//对通知进⾏行设置 UIUserNotificationSettings *setting =

[UIUserNotificationSettings settingsForTypes:
(UIUserNotificationTypeBadge|
UIUserNotificationTypeAlert|
UIUserNotificationTypeSound) categories:nil];

[app registerUserNotificationSettings:setting]; [app scheduleLocalNotification:notification]; 

}

第二步:接收本地推送

- (void)applicationDidBecomeActive:(UIApplication
*)application {

//当程序还在后台运⾏行

application.applicationIconBadgeNumber = 0; }

//接收本地推送
- (void)application:(UIApplication *)application
didReceiveLocalNotification:
(UILocalNotification*)notification{

UIAlertView *alert = [[UIAlertView alloc]
initWithTitle:@"本地通知" message:notification.alertBody
delegate:nil cancelButtonTitle:@"确定"
otherButtonTitles:nil];

[alert show];
// 图标上的数字减1
application.applicationIconBadgeNumber -= 1;

}

第三步:发送即时通知

- (IBAction)start:(id)sender {
UIApplication *app = [UIApplication

sharedApplication]; //即时推送

[app presentLocalNotificationNow:notification];
}

第四步:解除本地推送

- (IBAction)stop:(id)sender {
// UIApplication *app = [UIApplication
sharedApplication];
// //取消本地推送
// [app cancelLocalNotification:notification];

[self stopNotifacation];
}

//解除本地推送
- (void)stopNotifacation{

// 获得 UIApplication

    UIApplication *app = [UIApplication
sharedApplication];

//获取本地推送数组

    NSArray *localArray = [app
scheduledLocalNotifications];
    if (localArray) {
for (UILocalNotification *notify in localArray)

{

            NSString *keyString = [notify.userInfo
objectForKey:@"key"];
            if ([keyString isEqualToString:@"name"]) {
[app cancelLocalNotification:notify];

} }

} }

注:本地通知注册在本地,如果不取消的话会留下记录。可以通 过获取本地推送数组看到,执行完register后将会存在数组 中,如果不取消下次开启app的时候之前的还存在。

本地通知-UILocalNotification的更多相关文章

  1. IOS 本地通知 UILocalNotification

    IOS 本地通知 UILocalNotification [本文章第四部分中的代码逻辑来自网上的借鉴,并非我自己原创] 大概一个月前,我开始跟着做IOS项目了.学习C++,了解Objective-C, ...

  2. ios推送:本地通知UILocalNotification

    Notification是智能手机应用编程中非常常用的一种传递信息的机制,而且可以非常好的节省资源,不用消耗资源来不停地检查信息状态(Pooling),在iOS下应用分为两种不同的Notificati ...

  3. 本地通知UILocalNotification

    1.增加一个本地推送 //设置20秒之后  ]; //chuagjian一个本地推送 UILocalNotification *noti = [[[UILocalNotification alloc] ...

  4. IOS 本地通知UILocalNotification

    //发送通知    UILocalNotification *notification=[[UILocalNotification alloc] init];       if (notificati ...

  5. iOS 注冊本地通知(推送)

    注:按Home键让App进入后台执行时.方可查看通知. - (BOOL)application:(UIApplication *)application didFinishLaunchingWithO ...

  6. iOS 进阶---推送通知之本地通知

    1.推送通知的2种方式 1)本地推送通知(Local Notification) 2)远程推送通知(Remote Notification) 2.通知的作用 可以让不在前台运行的app,告知用户app ...

  7. iOS开发本地通知

    /* 本地通知:不通过网络,在本地实现的通知,自己发给自己 远程通知:必须通过网络,使用推送技术(APNs),实现通知 本地通知: 1.要完成可以接收的通知形式的注册 2.具体通知的设置 3.发送通知 ...

  8. iOS10以前的本地通知和远程通知

    一.简介 分为本地推送和远程推送2种.可以在应用没有打开甚至手机锁屏情况下给用户以提示.它们都需要注册,注册后系统会弹出提示框(如下图)提示用户是否同意,如果同意则正常使用:如果用户不同意则下次打开程 ...

  9. UILocalNotification本地通知的使用方法

    本文所写方法主要应用UILocalNotification达到本地推送通知栏信息 取消了其他教程里过期的UIAlertView方法 使用UILocalNotification主要分为创建 调用 取消 ...

随机推荐

  1. 比较两个文件的异同Python3 标准库difflib 实现

    比较两个文件的异同Python3 标准库difflib 实现 对于要比较两个文件特别是配置文件的差异,这种需求很常见,如果用眼睛看,真是眼睛疼. 可以使用linux命令行工具diff a_file b ...

  2. CSS中的各种单位

    单位 描述                                                                                               ...

  3. Cymothoa后门工具

    Cymothoa是一款隐秘的后门工具. 发现网上对于Cymothoa的文章并不是很多,可是Cymothoa又是一款非常强大的后门工具,这里记录下Cymothoa的使用笔记. Cymothoa 是一款可 ...

  4. opencv::直方图计算

    直方图概念 上述直方图概念是基于图像像素值,其实对图像梯度.每个像素的角度.等一切图像的属性值,我们都可以建立直方图.        这个才是直方图的概念真正意义,不过是基于图像像素灰度直方图是最常见 ...

  5. art-template的循环操作

    art-template的官方文档(网址:https://aui.github.io/art-template/docs/)中对循环的介绍如下: 循环 标准语法 {{each target}} {{$ ...

  6. 零基础教程!一文教你使用Rancher 2.3和Terraform运行Windows容器

    本文来自Rancher Labs 介 绍 在Kubernetes 1.14版本中已经GA了对Windows的支持.这一结果凝结了一群优秀的工程师的努力,他们来自微软.Pivotal.VMware.红帽 ...

  7. 利用Tampermonkey(油猴)+IDM实现百度云盘大文件下载;

    1.浏览器的脚本选择: 说明:不同的浏览器安装的名称不一样,这里采用Firefox做测试,同样可按照以下列表对应下载: Chrome:Tampermonkey 或 Violent monkey Fir ...

  8. 10 python学习笔记-操作数据库(十)

    在功能.接口测试中,常常需要通过数据库的操作,来准备数据.检测环境及核对功能.接口的数据库操作是否正确. 在自动化测试中,就需要我们用代码连接数据库自动完成数据准备. 环境检查及数据库断言的功能.数据 ...

  9. Java基础(四)注释

    1.类注释 类注释必须放在import语句之后,类定义之前.eclipse中使用Shift + Alt + J快捷键添加类注释. 2.方法注释 每一个方法注释必须放在所描述的方法之前.除了通用标记之外 ...

  10. 处理echarts用到的数据格式。。。

    1.需求将数据组装: 将typeNumMap中 键为 '1' 的放在数组series 索引为1的data数组中, 将'2'放在索引为2的data数组中,如果 typeNumMap 中没有 对应的 1, ...