#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本地推送的更多相关文章

  1. (七十三)iOS本地推送通知的实现

    iOS的推送通知分为本地推送和网络推送两种,如果App处于挂起状态,是可以发送本地通知的,如果已经被杀掉,则只有定时通知可以被执行,而类似于QQ的那种网络消息推送就无法实现了,因为App的网络模块在被 ...

  2. 81、iOS本地推送与远程推送详解

    一.简介 分为本地推送和远程推送2种.可以在应用没打开甚至手机锁屏情况下给用户以提示.它们都需要注册,注册后系统会弹出提示框(如下图)提示用户石否同意,如果同意则正常使用:如果用户不同意则下次打开程序 ...

  3. IOS 本地推送(UILocalNotification)

    推送通知 ● 注意:这里说的推送通知跟NSNotification有所区别 • NSNotification是抽象的,不可见的 • 推送通知是可见的(能用肉眼看到) ● iOS中提供了2种推送通知 ● ...

  4. iOS 本地推送通知

    1.什么是本地推送通知 不需要联网的情况下,应用程序经由系统发出的通知 2.本地推送的使用场景 定时提醒,如玩游戏.记账.闹钟.备忘录等 3.实现本地推送通知的步骤 创建本地推送通知的对象UILoca ...

  5. IOS 本地推送 IOS10.0以上 static的作用 const的作用

    //需要在AppDelegate里面启动APP的函数 加上 UIUserNotificationType types = UIUserNotificationTypeBadge | UIUserNot ...

  6. iOS本地推送与远程推送

    原文在此 分为本地推送和远程推送2种.可以在应用没有打开甚至手机锁屏情况下给用户以提示.它们都需要注册,注册后系统会弹出提示框(如下图)提示用户是否同意,如果同意则正常使用:如果用户不同意则下次打开程 ...

  7. [转载]iOS本地推送-备用

    第一步:创建本地推送// 创建一个本地推送UILocalNotification *notification = [[[UILocalNotification alloc] init] autorel ...

  8. iOS本地推送与远程推送详解

    一.简介 分为本地推送和远程推送2种.可以在应用没有打开甚至手机锁屏情况下给用户以提示.它们都需要注册,注册后系统会弹出提示框(如下图)提示用户是否同意,如果同意则正常使用:如果用户不同意则下次打开程 ...

  9. IOS 本地推送

    // 1.打开本地推送并设置属性 NSString *str = @"本地推送的信息"; UIApplication *app = [UIApplication sharedApp ...

随机推荐

  1. redis 异常解决办法

    redis 异常解决办法 26069:M 08 Aug 17:06:58.858 # WARNING: The TCP backlog setting of 511 cannot be enforce ...

  2. vb.net多线程

    Public Class Form1 Dim myThread As Threading.Thread Dim myThread2 As Threading.Thread Private Sub Bu ...

  3. perl文件句柄的传递

    perl 返回文件句柄的2种方式 1.使用 \* #!/usr/bin/perl use strict; sub openfile() { my $path=shift; open(FILE,&quo ...

  4. Node.js 字体格式转换 ttf2eot ttf2woff ttf2svg

    前几天为了查找字体转换工具网上搜索,既然用 Node.js 来做的工具. https://github.com/fontello/ttf2eot https://github.com/fontello ...

  5. nyoj202_红黑树_中序遍历

    红黑树 时间限制:3000 ms  |  内存限制:65535 KB 难度:3   描述 什么是红黑树呢?顾名思义,跟枣树类似,红黑树是一种叶子是黑色果子是红色的树... 当然,这个是我说的... & ...

  6. 【leetcode】Number of Islands(middle)

    Given a 2d grid map of '1's (land) and '0's (water), count the number of islands. An island is surro ...

  7. 最喜欢的VS 键盘快捷键摘抄

    最喜欢的Visual Studio键盘快捷键(关闭)   336年最喜欢的 425年 你最喜欢的Visual Studio键盘快捷键是什么? 我总是让我的手在键盘上,远离鼠标! 一个请每回答. net ...

  8. 点击按钮出现60秒倒计时js代码

    <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/ ...

  9. Mysql之多源复制

    在复制时,可以有多个Master.这些Master不进行冲突检查拓扑到Slave.在使用多源复制时对Slave的表存储格式是有要求的,必须要基于table存储而非文件存储[require table ...

  10. c语言中的浮点数

    一.浮点数常量(小数) 0.11L, 0.0f ,0.0,1.88,2.5f ,0.188E1 E3表示103        比如 1.88E 3=1.88*1000=1880.0f E-3表示10- ...