IOS本地消息推送(UILocalNotification)

IOS本地的Notification由iOS下NotificationManager统一管理,只需要将封装好的本地Notification对象加入到系统Notification管理机制队列中,系统会在指定的时间激发将本地Notification,应用只需设计好处理Notification的方法就完成了整个Notification流程了。

IOS本地的Notification有UILocalNotification对象完成。它包括的主要属性有:fireDate、timeZone、repeatInterval、repeatCalendar、alertBody、 alertAction、hasAction、alertLaunchImage、applicationIconBadgeNumber、 soundName和userInfo。

   UILocalNotification的调度

fireDate: UILocalNotification的激发的确切时间。

timeZone:确定UILocalNotification激发时间是否根据时区改变而改变,如果设置为nil的话,那么UILocalNotification将在一段时候后被激发,而不是某一个确切时间被激发。

repeatInterval:是UILocalNotification被重复激发之间的时间差,不过时间差是完全根据日历单位(NSCalendarUnit)的,例如每周激发的单位,NSWeekCalendarUnit,如果不设置的话,将不会重复激发。

repeatCalendar:是UILocalNotification重复激发所使用的日历单位需要参考的日历,如果不设置的话,系统默认的日历将被作为参考日历。

soundName:设置UILocalNotification消息推送时的声音,例如:UILocalNotificationDefaultSoundName,也可指定

UILocalNotification的提醒内容

 alertBody、alertAction、hasAction、alertLaunchImage

alertBody:推送内容。

applicationIconBadgeNumber:角标数字。

//设置userinfo 方便在之后需要撤销的时候使用

NSDictionary *infoDic = [NSDictionary dictionaryWithObject:@"name" forKey:@"key"];

noti.userInfo = infoDic;

取消一个本地推送

UIApplication *app = [UIApplication sharedApplication];

//获取本地推送数组

NSArray *localArr = [app scheduledLocalNotifications];

//声明本地通知对象

UILocalNotification *localNoti;

if (localArr) {

for (UILocalNotification *noti in localArr) {

NSDictionary *dict = noti.userInfo;

if (dict) {

NSString *inKey = [dict objectForKey:@"key"];

if ([inKey isEqualToString:key]) {

if (localNoti){

[localNoti release];

localNoti = nil;

}

localNoti = [noti retain];

break;

}

}

}

//判断是否找到已经存在的相同key的推送

if (!localNoti) {

//不存在 初始化

localNoti = [[UILocalNotification alloc] init];

}

if (localNoti && !state) {

//不推送 取消推送

[app cancelLocalNotification:localNoti];

[localNoti release];

return;

}

}

4.两种方式取消注册的本地通知,一种是取消指定的通知,第二种是取消所有的注册通知:

[[UIApplication sharedApplication] cancelLocalNotification:localNotification];

[[UIApplication sharedApplication] cancelAllLocalNotification];

时间: 2024-11-08 23:43:48

IOS本地消息推送(UILocalNotification)的相关文章

Android本地消息推送

项目介绍:cocos2dx跨平台游戏 项目需求:实现本地消息推送,需求①:定点推送:需求②:根据游戏内逻辑实现推送(比如玩家体力满时,需要计算后到点推送):需求③:清理后台程序或重启后依然能够实现本地推送. 功能实现:由于IOS有一套比较成熟的UILocalNotification推送机制,这里主要说明Android下的实现.另外大家感兴趣可以看下第三方的推送:个推.极光.腾讯信鸽.百度云推送等,第三方多是要接入服务端,否则只能自己在第三方申请的应用的后台手动推送,另外第三方也不保证能100%所

iOS 细说消息推送

经常有同学问我们,iOS上推送究竟怎么做啊,为什么我的设备总收不到推送呢,这里跟大家集中讨论一下iOS上推送的实现细节. APNS的推送机制 与Android上我们自己实现的推送服务不一样,Apple对设备的控制非常严格,消息推送的流程必须要经过APNs: 这里 Provider 是指某个应用的Developer,当然如果开发者使用AVOS Cloud的服务,把发送消息的请求委托给我们,那么这里的Provider就是AVOS Cloud的推送服务程序了.上图可以分为三步: 第一步:AVOS Cl

xamarin.ios 本地通知推送

由于ios10版本以后UILocalNotification被标为弃用了,所以要添加新的本地通知推送功能,下面提供一些代码参考. 一.先在AppDelegate.cs上注册本地通知推送功能. 1 public override bool FinishedLaunching(UIApplication app, NSDictionary options) 2 { 3 global::Xamarin.Forms.Forms.Init(); 4 global::ZXing.Net.Mobile.For

iOS 10 消息推送(UserNotifications)秘籍总结(一)

背景 iOS10 新特性一出,各个大神就早已研究新特性能给场景智能化所带来的好处(唉,可惜我只是一个小白).我也被安排适配iOS10的推送工作! Apple 表示这是 iOS 有史以来最大的升级(our biggest release yet),更加智能开放的 Siri .强化应用对 3D Touch 支持. HomeKit .电话拦截及全新设计的通知等等… iOS 10 中将之前繁杂的推送通知统一成UserNotifications.framework 来集中管理和使用通知功能,还增加一些实用

本地消息推送设置

NSDate *date = [NSDate dateWithTimeIntervalSinceNow:10]; UILocalNotification *localNotification = [[UILocalNotification alloc]init]; localNotification.fireDate = date; localNotification.timeZone = [NSTimeZone localTimeZone]; localNotification.alertBo

IOS 之消息推送(个推)---个人小结

前言:自从上个星期开始整这个推送,弄了差不多一个星期,今天终于给整好了,因此现在来记录这段"奇妙"的旅程. 我们公司使用的消息推送是用的第三方--个推,这里不得不说一下,个推的技术人员还是蛮热心的,一直在帮助我排查问题,终于问题解决了,感谢感谢! 步骤及问题排查: 1.参照开发文档,集成SDK ,这里就不一一介绍了.(注意,个推的ios推送只能使用透传) 2.创建证书.苹果的推送证书分为开发证书(测试用)和生产证书(上线用).这里需要注意的就是,创建证书之前先必须打开证书的push 服

iOS远程消息推送自我整理版

@interface AppDelegate () <UIApplicationDelegate> @end @implementation AppDelegate - (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions { /************ 检测通知 **************/ if ([[[UIDevice curr

玩转iOS开发 - 消息推送

消息推送 原文地址:https://www.cnblogs.com/zhchoutai/p/8550881.html

苹果iOS APNS消息推送通知

参考链接: http://www.tairan.com/archives/194 http://www.tairan.com/archives/240 https://developer.apple.com/library/ios/documentation/NetworkingInternet/Conceptual/RemoteNotificationsPG/Chapters/ProvisioningDevelopment.html#//apple_ref/doc/uid/TP40008194