iOS之本地推送(前台模式与后台模式)
#import "AppDelegate.h"
#import "GlobalDefine.h"
@interface AppDelegate ()
@end
@implementation AppDelegate
- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions {
// 判断是否是8.0以上
if ([UIDevice currentDevice].systemVersion.floatValue >= 8.0) {
UIMutableUserNotificationCategory *category = [[UIMutableUserNotificationCategory alloc] init];
category.identifier = NotificationIdentifier;
UIMutableUserNotificationAction *foregroundAction = [[UIMutableUserNotificationAction alloc] init];
foregroundAction.identifier = foregroundActionidentifier;
foregroundAction.title = @"前台模式";
foregroundAction.activationMode = UIUserNotificationActivationModeForeground;
UIMutableUserNotificationAction *backgroundAction = [[UIMutableUserNotificationAction alloc] init];
backgroundAction.identifier = backgroundActionidentifier;
backgroundAction.title = @"后台模式";
backgroundAction.activationMode = UIUserNotificationActivationModeBackground;
[category setActions:@[foregroundAction, backgroundAction] forContext:UIUserNotificationActionContextDefault];
NSSet *set = [NSSet setWithObjects:category, nil];
UIUserNotificationSettings *settings = [UIUserNotificationSettings settingsForTypes:UIUserNotificationTypeBadge | UIUserNotificationTypeAlert | UIUserNotificationTypeSound categories: set];
[[UIApplication sharedApplication] registerUserNotificationSettings:settings];
}
return YES;
}
- (void)application:(UIApplication *)application handleActionWithIdentifier:(NSString *)identifier forRemoteNotification:(NSDictionary *)userInfo withResponseInfo:(NSDictionary *)responseInfo completionHandler:(void (^)())completionHandler {
if ([identifier isEqualToString:foregroundActionidentifier]) {
NSLog(@"ios9点击了前台模式");
}
completionHandler();
}
@end
______________________________________华丽的分割线_________________________________________________
#import "ViewController.h"
#import "GlobalDefine.h"
@interface ViewController ()
@end
@implementation ViewController
- (void)touchesBegan:(NSSet<UITouch *> *)touches withEvent:(UIEvent *)event {
UILocalNotification *notification = [[UILocalNotification alloc] init];
notification.fireDate = [NSDate dateWithTimeIntervalSinceNow:5]; // 推送时间
notification.alertTitle = @"推送"; // 推送标题
notification.alertBody = @"推送内容"; // 推送的内容
notification.category = NotificationIdentifier;
[[UIApplication sharedApplication] scheduleLocalNotification:notification];
}
@end
______________________________________华丽的分割线_________________________________________________
#ifndef GlobalDefine_h
#define GlobalDefine_h
#define NotificationIdentifier @"NotificationIdentifier"
#define backgroundActionidentifier @"backgroundAction.identifier"
#define foregroundActionidentifier @"foregroundAction.identifier"
#endif /* GlobalDefine_h */
PS: 最下面的 #ifndef GlobalDefine_h 头文件
可以全部复制进去运行,
iOS之本地推送(前台模式与后台模式)的更多相关文章
- iOS开发本地推送(iOS10)UNUserNotificationCenter
1.简介 iOS10之后苹果对推送进行了封装,UNUserNotificationCenter就这样产生了.简单介绍本地推送的使用UserNotifications官方文档说明! 2.简单使用UNUs ...
- iOS开发本地推送
1.简介 本地通知是由本地应用触发的,它是基于时间行为的一种通知形式,例如闹钟定时.待办事项提醒,又或者一个应用在一段时候后不使用通常会提示用户使用此应用等都是本地通知. 2.创建UILocalNot ...
- iOS的本地推送删除不了解决方法
最近在研究苹果推送,当测试本地推送的时候,发现一个问题,就是一旦你添加了一个本地推动的通知,当你修改代码,删除应用,当你再次运行app,它还是会在横幅上面弹出推送,尼玛怎么搞都删除不了,近乎崩溃了,开 ...
- iOS关于本地推送
不多说 直接上代码 NSDate *now = [NSDate date]; UILocalNotification *reminderNotification = [[UILocalNoti ...
- IOS中程序如何进行推送消息(本地推送,远程推送)
[1]-------------什么是推送消息? 我就以一张图解释------------ [2]-----------IOS程序中如何进行本地推送?----------- 2.1,先征求用户同意 1 ...
- IOS之推送通知(本地推送和远程推送)
推送通知和NSNotification是有区别的: NSNotification:是看不到的 推送通知:是可以看到的 IOS中提供了两种推送通知 本地推送通知:(Local Notification) ...
- 81、iOS本地推送与远程推送详解
一.简介 分为本地推送和远程推送2种.可以在应用没打开甚至手机锁屏情况下给用户以提示.它们都需要注册,注册后系统会弹出提示框(如下图)提示用户石否同意,如果同意则正常使用:如果用户不同意则下次打开程序 ...
- ios 开发之本地推送
网络推送可能被人最为重视,但是本地推送有时候项目中也会运用到: 闲话少叙,代码如下: 1.添加根视图 self.window.rootViewController = [[UINavigationCo ...
- IOS 本地推送(UILocalNotification)
推送通知 ● 注意:这里说的推送通知跟NSNotification有所区别 • NSNotification是抽象的,不可见的 • 推送通知是可见的(能用肉眼看到) ● iOS中提供了2种推送通知 ● ...
随机推荐
- 二维码生成 - QrCodeNet
下载QrCodeNet /// <summary> /// 生成QR码 /// </summary> /// <param name="output_path& ...
- Jboss基础及简单的应用
初学Jboss,对于Jboss的基础认识以及配置做一些记录 Jboss基础: JBoss是什么–基于J2EE的应用服务器–开放源代码–JBoss核心服务不包括支持servlet/JSP的WEB容器,一 ...
- 运行一个Hadoop Job所需要指定的属性
1.设置job的基础属性 Job job = new Job(); job.setJarByClass(***.class); job.setJobName("job name") ...
- 基于cygwin构建u-boot(五)结尾:shell 工具
结尾,基于cygwin对u-boot的处理,很大一部分都是再处理 路径等相关的问题,只有一个涉及到gcc的参数配置. 为了达到顺利编译的目的,使用shell下的部分工具进行处理. 1.sed sed简 ...
- 基于zigbee与tiny4412开发板的环境监测系统
一.开发板环境搭建 1.tiny4412 linux系统的布置 参考博客:http://www.cnblogs.com/luoxiang/p/4186391.html 二.boa服务器的搭建 下载 ...
- mvc4 基于Area实现插件模块化开发
对于一个较大规模的Web应用,可以从功能上通过Area将其划分为为较小的单元.每个Area相当于一个独立的子系统,具有一套包含Model.Views和Controller在内 的目录结构和配置文件.一 ...
- bootstrap 模态框动态加载数据
.页面中添加modal <!-- 模态框(Modal) --> <div class="modal fade" id="showModal" ...
- 用RBG颜色设置自定义颜色
这个是Mac自带的测色计 快捷键shift + command + c即可复制RBG格式的颜色 #DD0000 这个是csdn 的logo里的红色 我们得到的是十六位颜色代码 但是UIColor( ...
- hdu Game of Connections
卡特兰数 递推公式:h(n)=h(n-1)*(4*n-2)/(n+1); import java.math.BigInteger; import java.util.Scanner; public c ...
- qt info.plist 添加
http://www.waitingfy.com/archives/1242 http://www.sollyu.com/settings-icon-under-the-qt-mac-applicat ...