ios本地推送
#import "AppDelegate.h"
@interface AppDelegate ()
@end
@implementation AppDelegate
//无论程序在前后台运行,只要接收到通知,就会调用此方法
-(void)application:(UIApplication *)application didReceiveLocalNotification:(UILocalNotification *)notification
{
NSLog(@"%@",notification);
//添加控件,接收显示到的信息
UILabel *label=[[UILabel alloc]initWithFrame:CGRectMake(100, 100, 100, 100)];
label.backgroundColor=[UIColor grayColor];
label.text=[NSString stringWithFormat:@"%@",notification];
[self.window.rootViewController.view addSubview:label];
}
- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions {
// Override point for customization after application launch.
UILocalNotification *info=launchOptions[UIApplicationLaunchOptionsLocalNotificationKey];
if (info) {
UILabel *label = [[UILabel alloc]initWithFrame:CGRectMake(0, 0, 320, 300)];
label.backgroundColor = [UIColor orangeColor];
[self.window.rootViewController.view addSubview:label];
//取出携带信息
label.numberOfLines = 0;
//NSDictionary *dict = info[@"UIConcreteLocalNotification"];
// NSArray *keys = [info allKeys];
//for (NSString *str in keys) {
// label.text = [NSString stringWithFormat:@"%@",str];
//}
//NSDictionary *dict1 = dict[@"user info"];
label.text = [NSString stringWithFormat:@"%@",info.userInfo];
//跳转对应的界面
}
return YES;
}
@end
#import "ViewController.h"
@interface ViewController ()
@end
@implementation ViewController
- (void)viewDidLoad {
[super viewDidLoad];
//iOS8之后 需要注册通知类型 包含哪些(声音,图标文字,文本) 信息
/*
UIUserNotificationTypeNone = 0,
UIUserNotificationTypeBadge = 1 << 0, 包含图标文字 0001
UIUserNotificationTypeSound = 1 << 1, // 声音 0010
UIUserNotificationTypeAlert = 1 << 2, // 主题内容 0100
*/
UIUserNotificationSettings *setting=[UIUserNotificationSettings settingsForTypes:UIUserNotificationTypeBadge|UIUserNotificationTypeSound categories:nil];
//注册通知
[[UIApplication sharedApplication]registerUserNotificationSettings:setting];
}
-(void)touchesBegan:(NSSet *)touches withEvent:(UIEvent *)event
{
//创建本地通知
UILocalNotification *local=[[UILocalNotification alloc]init];
local.alertBody=@"老易:你为什么这么爱生气?";
local.fireDate=[NSDate dateWithTimeIntervalSinceNow:3];
local.soundName=UILocalNotificationDefaultSoundName;
local.alertAction=@"约";
local.applicationIconBadgeNumber=5;
local.userInfo=@{@"name":@"大易",@"age":@"18"};
//定制通知
[[UIApplication sharedApplication]scheduleLocalNotification:local];
// //立即发送通知
// [[UIApplication sharedApplication]presentLocalNotificationNow:local];
// //取消本地所有通知
// [[UIApplication sharedApplication]cancelAllLocalNotifications];
/*
// timer-based scheduling 定制 特定的时间发出通知
@property(nonatomic,copy) NSDate *fireDate; 触发 时间
@property(nonatomic,copy) NSTimeZone *timeZone; 时区
@property(nonatomic) NSCalendarUnit repeatInterval; 重复间隔 // 0 means don't repeat
@property(nonatomic,copy) NSCalendar *repeatCalendar; 重复间隔
@property(nonatomic,copy) CLRegion *region NS_AVAILABLE_IOS(8_0);//区域
@property(nonatomic,assign) BOOL regionTriggersOnce NS_AVAILABLE_IOS(8_0); //决定区域的一个bool值
// alerts
@property(nonatomic,copy) NSString *alertBody; 提醒的主题
@property(nonatomic) BOOL hasAction; // NO 不显示滑动解锁的按钮 反之 显示
@property(nonatomic,copy) NSString *alertAction; //滑动解锁的文字
@property(nonatomic,copy) NSString *alertLaunchImage; //点击通知横幅的启动程序的 启动 图片
@property(nonatomic,copy) NSString *alertTitle 提示的标题文字
// sound 默认: UILocalNotificationDefaultSoundName
@property(nonatomic,copy) NSString *soundName;
// badge
@property(nonatomic) NSInteger applicationIconBadgeNumber; //图标文字
// user info
@property(nonatomic,copy) NSDictionary *userInfo; // 用户指定的携带参数
[UIUserNotificationSettings settingsForUserNotificationTypes:userNotificationActionSettings:]
@property (nonatomic, copy) NSString *category NS_AVAILABLE_IOS(8_0);分类
*/
}
@end
ios本地推送的更多相关文章
- (七十三)iOS本地推送通知的实现
iOS的推送通知分为本地推送和网络推送两种,如果App处于挂起状态,是可以发送本地通知的,如果已经被杀掉,则只有定时通知可以被执行,而类似于QQ的那种网络消息推送就无法实现了,因为App的网络模块在被 ...
- 81、iOS本地推送与远程推送详解
一.简介 分为本地推送和远程推送2种.可以在应用没打开甚至手机锁屏情况下给用户以提示.它们都需要注册,注册后系统会弹出提示框(如下图)提示用户石否同意,如果同意则正常使用:如果用户不同意则下次打开程序 ...
- IOS 本地推送(UILocalNotification)
推送通知 ● 注意:这里说的推送通知跟NSNotification有所区别 • NSNotification是抽象的,不可见的 • 推送通知是可见的(能用肉眼看到) ● iOS中提供了2种推送通知 ● ...
- iOS 本地推送通知
1.什么是本地推送通知 不需要联网的情况下,应用程序经由系统发出的通知 2.本地推送的使用场景 定时提醒,如玩游戏.记账.闹钟.备忘录等 3.实现本地推送通知的步骤 创建本地推送通知的对象UILoca ...
- IOS 本地推送 IOS10.0以上 static的作用 const的作用
//需要在AppDelegate里面启动APP的函数 加上 UIUserNotificationType types = UIUserNotificationTypeBadge | UIUserNot ...
- iOS本地推送与远程推送
原文在此 分为本地推送和远程推送2种.可以在应用没有打开甚至手机锁屏情况下给用户以提示.它们都需要注册,注册后系统会弹出提示框(如下图)提示用户是否同意,如果同意则正常使用:如果用户不同意则下次打开程 ...
- [转载]iOS本地推送-备用
第一步:创建本地推送// 创建一个本地推送UILocalNotification *notification = [[[UILocalNotification alloc] init] autorel ...
- iOS本地推送与远程推送详解
一.简介 分为本地推送和远程推送2种.可以在应用没有打开甚至手机锁屏情况下给用户以提示.它们都需要注册,注册后系统会弹出提示框(如下图)提示用户是否同意,如果同意则正常使用:如果用户不同意则下次打开程 ...
- IOS 本地推送
// 1.打开本地推送并设置属性 NSString *str = @"本地推送的信息"; UIApplication *app = [UIApplication sharedApp ...
随机推荐
- python之errno
http://www.cnblogs.com/Security-Darren/p/4168392.html errno.EWOULDBLOCK 操作将会阻塞
- struts2框架 初始别
struts2 是webwork和struts合并而来. 1.下载struts2 说明: Full Distribution: 为完整版下载,建议下载它 Example Applications:st ...
- 解读Unity中的CG编写Shader系列二
转自 http://www.itnose.net/detail/6095974.html 上一篇文章的例子中我们可以看到顶点着色器的输出参数可以说是直接作为了片段着色器的形参传递过来,那么不由得一个问 ...
- android上的图片占用内存问题
近日正在把ios程序移植到android上,以前没做过android的程序,于是,想当然地把ios的图片资源放到了android工程的drawable文件夹下,这些图片都是png. 程序界面也很正常. ...
- angular.js初探
2015年7月27日 22:26:35 星期一 用在我论坛里的小栗子: 先列出来一级回帖, 点击帖子前边的"查看回复"按钮无刷新的去请求该帖子的所有回复 首先要引用js文件, 我这 ...
- static cross compile gtk-2.16.6+gtk-directfb+arm-linux (arm-linux-gcc-3.4.4+glib-2.3.5)
----------------------------------------------------------------------- In Ubuntu 10.4 Desktop and & ...
- Java Thread.join()方法
一.使用方式. join是Thread类的一个方法,启动线程后直接调用,例如: Thread t = new AThread(); t.start(); t.join(); 二.为什么要用join() ...
- Django ~module index
https://docs.djangoproject.com/en/1.9/py-modindex/ django.conf.urls django.contrib.admin django.db.m ...
- 【linux】配置SSH免密码登陆
1.输入ssh-keygen -t dsa -P '' -f ~/.ssh/id_dsa 其中''里的是登陆的密码,因为要设置免密码,所以''里是什么都没有的,空格也不行 2.输入 cat ~/.ss ...
- 20145213《Java程序设计》第七周学习总结
20145213<Java程序设计>第七周学习总结 教材学习内容总结 周末快乐的时间总是短暂的,还没好好感受就到了要写博客的周日.有人喟叹时间都去哪儿了,那本周我们就来认识一下Java里的 ...