第一步:创建本地推送

本地通知

UILocalNotification

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

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

  1. 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

  1. UIApplication *app = [UIApplication
  2. sharedApplication];

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

  1. [UIUserNotificationSettings settingsForTypes:
  2. (UIUserNotificationTypeBadge|
  3. UIUserNotificationTypeAlert|
  4. UIUserNotificationTypeSound) categories:nil];

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

}

第二步:接收本地推送

  1. - (void)applicationDidBecomeActive:(UIApplication
  2. *)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;

}

第三步:发送即时通知

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

sharedApplication]; //即时推送

  1. [app presentLocalNotificationNow:notification];
  2. }

第四步:解除本地推送

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

[self stopNotifacation];
}

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

// 获得 UIApplication

  1. UIApplication *app = [UIApplication
  2. sharedApplication];

//获取本地推送数组

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

{

  1. NSString *keyString = [notify.userInfo
  2. objectForKey:@"key"];
  1. if ([keyString isEqualToString:@"name"]) {
  2. [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. PHP 数组转json格式,key的保存问题

    <?php $arr = [ 2, 3, ]; echo print_r($arr,true); echo json_encode($arr); echo "\n\n"; $ ...

  2. Android 使用appcompat_v7包以及源码注意事项

    最近学习和实践Android,无数次被AS和gradle惨痛的折磨,于是决定坚守Eclipse阵地..真是无奈之举,AS和gradle对我而言就像win10一样不讨喜. 当然Eclipse中开发and ...

  3. Python开发【第一篇】:目录

    本系列博文包含Python基础.前端开发.Web框架.缓存以及队列等,希望可以给正在学习Python编程的朋友们提供一点帮助! .Python开发[第一篇]:目录 .Python开发[第二篇]:初始P ...

  4. 工厂模式在mvc模型中的应用

    在web开发中我们常用mvc模式进行web应用的开发 当应用进入service 层的时候我们根据不同的业务多逻辑进行处理 当有数据进入controller的时候 public class Virtua ...

  5. 向net core 3.0进击——项目发布与部署

    目录 前言 发布 测试 小结 前言 在经历过好多折腾后,总算是把部署走通了一遍,之前只是简单创建个工程在linux下部署,后来一直将这件事搁置,直到最近刚好团队入手一个小服务器,很显然是linux的, ...

  6. 百万年薪python之路 -- 字典(dict)

    1.字典(dict)-- dict关键字 字典(dict)是python中唯⼀的⼀个映射类型.他是以{ }括起来的键值对组成. ​ 字典中逗号分隔叫作一个元素 ​ 字典是无序的 ​ key必须是不可变 ...

  7. java类在何时被加载

    我们接着上一章的代码继续来了解一下java类是在什么时候加载的.在开始验证之前,我们现在IDEA做如下配置. -XX:+TraceClassLoading 监控类的加载 我们新建了一个TestCont ...

  8. WORKGROUP无法访问,您可能没有权限使用网络资源,请与这台服务器的管理员联系以....

    解决方法 1.启用Guest账号 在很多情况下,为了本机系统的安全,Guest账户是被禁用的,这样就无法访问该机器的共享资源,因此必须启用Guest账户. 笔者以Windows XP系统为例进行介绍. ...

  9. github 下载子目录内容 亲测可用!

    下载我的LYBTouchID项目的Kit目录内容 (1)在github上点开这个目录,浏览器地址栏可以得到这个地址 https://github.com/Liuyubao/LYBTouchID/tre ...

  10. Spring Boot项目中如何定制servlet-filters

    本文首发于个人网站:Spring Boot项目中如何定制servlet-filters 在实际的web应用程序中,经常需要在请求(request)外面增加包装用于:记录调用日志.排除有XSS威胁的字符 ...