本地通知-UILocalNotification
第一步:创建本地推送
本地通知
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的更多相关文章
- IOS 本地通知 UILocalNotification
IOS 本地通知 UILocalNotification [本文章第四部分中的代码逻辑来自网上的借鉴,并非我自己原创] 大概一个月前,我开始跟着做IOS项目了.学习C++,了解Objective-C, ...
- ios推送:本地通知UILocalNotification
Notification是智能手机应用编程中非常常用的一种传递信息的机制,而且可以非常好的节省资源,不用消耗资源来不停地检查信息状态(Pooling),在iOS下应用分为两种不同的Notificati ...
- 本地通知UILocalNotification
1.增加一个本地推送 //设置20秒之后 ]; //chuagjian一个本地推送 UILocalNotification *noti = [[[UILocalNotification alloc] ...
- IOS 本地通知UILocalNotification
//发送通知 UILocalNotification *notification=[[UILocalNotification alloc] init]; if (notificati ...
- iOS 注冊本地通知(推送)
注:按Home键让App进入后台执行时.方可查看通知. - (BOOL)application:(UIApplication *)application didFinishLaunchingWithO ...
- iOS 进阶---推送通知之本地通知
1.推送通知的2种方式 1)本地推送通知(Local Notification) 2)远程推送通知(Remote Notification) 2.通知的作用 可以让不在前台运行的app,告知用户app ...
- iOS开发本地通知
/* 本地通知:不通过网络,在本地实现的通知,自己发给自己 远程通知:必须通过网络,使用推送技术(APNs),实现通知 本地通知: 1.要完成可以接收的通知形式的注册 2.具体通知的设置 3.发送通知 ...
- iOS10以前的本地通知和远程通知
一.简介 分为本地推送和远程推送2种.可以在应用没有打开甚至手机锁屏情况下给用户以提示.它们都需要注册,注册后系统会弹出提示框(如下图)提示用户是否同意,如果同意则正常使用:如果用户不同意则下次打开程 ...
- UILocalNotification本地通知的使用方法
本文所写方法主要应用UILocalNotification达到本地推送通知栏信息 取消了其他教程里过期的UIAlertView方法 使用UILocalNotification主要分为创建 调用 取消 ...
随机推荐
- springboot配置logback日志
springboot配置logback日志 java web 下有好几种日志框架,比如:logback,log4j,log4j2(slj4f 并不是一种日志框架,它相当于定义了规范,实现了这个规范的日 ...
- python soket服务和客户端Demo
#服务端from socket import * s=socket(AF_INET,SOCK_STREAM)#IVP4 寻址 tcp协议 s.bind(('',6666))#补丁端口 s.listen ...
- 说说Object类下面有几种方法呢?
今天说一道基础题型,不过很多人会忽略或者至少说不完整,但是面试时被问到的几率还是很大的. 面试题 Object有几种方法呢? Java语言是一种单继承结构语言,Java中所有的类都有一个共同的祖先.这 ...
- thinkcmf5 支付宝接口操作
这是我自己摸索再结合网上搜索的一大堆内容搞出来的,官方的文件对于新手来说很难理解,什么文件放什么位置,该怎么引用,都要一一尝试,我这就直接列出来了,照样放就是了.同样适用于tp5,我这个也是tp5的 ...
- PassWord控件
<StackPanel Margin="> <Label>Text:</Label> <TextBox /> <Label>Pas ...
- Java 异常(二) 自定义异常
上篇文章介绍了java中异常机制,本文来演示一下自定义异常 上篇文章讲到非运行时异常和运行时异常,下面我们来看一下简单实现代码. 首先,先来看下演示目录 非运行时异常 也称 检查时异常 public ...
- SVN命令行笔记
SVN命令行笔记 近期玩了一下命令行,记录如下. svn info <path> #查看文件,路径信息 svn log <path> #查看文件,路径历史记录 svn st(s ...
- video2
<!DOCTYPE html> <html> <head> <meta charset="UTF-8"> <title> ...
- fenby C语言P21
数据类型 数组名字[个数]: #include <stdio.h> int main(){ int a[8]; float b[9]; char c[10]; return 0;}
- 【Java必修课】通过Value获取Map中的键值Key的四种方法
1 简介 我们都知道Map是存放键值对<Key,Value>的容器,知道了Key值,使用方法Map.get(key)能快速获取Value值.然而,有的时候我们需要反过来获取,知道Value ...