本地通知-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主要分为创建 调用 取消 ...
随机推荐
- MySQL基础(四)常用函数
转载自 http://blog.csdn.net/evankaka MySQL数据库中提供了很丰富的函数.MySQL函数包括数学函数.字符串函数.日期和时间函数.条件判断函数.系统信息函数.加密函数. ...
- Cocos2d-x 学习笔记(15.1) EventDispatcher
EventDispatcher对监听器进行管理,围绕着监听器工作.可以添加.删除.暂停/恢复监听器.分发事件到监听器. 1. 一些成员 /** 把ListenerID和同ID监听器的容器对应 */ s ...
- Win10系统Cortana 小娜无法搜索
1.在开始菜单中找“Windows PowerShell”文件夹,打开后右键单击Windows PowerShell,选择“以管理员身份运行” 2.输入命令,通过重新注册语音小娜来解决问题 Get-A ...
- 数据结构5_java---二叉树,树的建立,树的先序、中序、后序遍历(递归和非递归算法),层次遍历(广度优先遍历),深度优先遍历,树的深度(递归算法)
1.二叉树的建立 首先,定义数组存储树的data,然后使用list集合将所有的二叉树结点都包含进去,最后给每个父亲结点赋予左右孩子. 需要注意的是:最后一个父亲结点需要单独处理 public stat ...
- 在Hadoop上用Python实现WordCount
一.简单说明 本例中我们用Python写一个简单的运行在Hadoop上的MapReduce程序,即WordCount(读取文本文件并统计单词的词频).这里我们将要输入的单词文本input.txt和Py ...
- 概念理解-IO多路复用
epoll 是 Linux 内核为处理大批量文件描述符而作了改进的 poll,是 Linux 下多路复用 IO接口 select/poll 的增强版本 在 linux 的网络编程中,很长时间都在使用 ...
- python中如何通过报错信息定位问题(异常传播轨迹)
class SelfException(Exception): pass def main(): firstMethod() def firstMethod(): secondMethod() def ...
- OptimalSolution(2)--二叉树问题(4)子树与拓扑结构
一.判断t1树是否包含t2树全部的拓扑结构 1 / \ 2 3 2 / \ / \ / \ 4 5 6 7 4 5 / \ / / 8 9 10 8 返回:true 解法(O(M×N)):如果t1中某 ...
- 修改vuex状态机中的数据
vuex状态机中的数据是必须提交mutation来修改,如果现实开发中,我们需要修改,而又不想提交mutaition,应该怎么做呢? 先来回顾一下场景,有一个列表是存在vuex中的 这个列表展 ...
- TypeError: expected string or bytes-like object
在写Python代码的时候,遇到了"TypeError: a bytes-like object is required, not 'str'"错误,此处实验机器的Python环境 ...