消息推送——本地推送

消息推送分两种:

1.本地推送(Local Notification)

2.远程推送(Remote Notification)

消息推送的作用

可以让APP不在前台,告知用户APP内部发生了什么

消息推送的效果

1.没有效果

2.横幅 在屏幕的顶部显示具体内容

3.提醒 UIAlertController 在屏幕中间显示具体内容

4.在锁屏的时候显示一块横幅 在手机的设置里面对它进行不同的效果设置

5.可以更改APP图标上面显示的提醒数字

注意:发送推送通知的时候,如果APP在前台运行,那么推送的通知不会被呈现出来 在发送通知之后,无论APP是打开,还是关闭,推送都能如期发出,但是用户不一定能如期去接收

但在iOS8之后需要注册。

首先在AppDelegate.m文件里面需要判断版本信息根据版本信息是否大于8.0设置推送样式,具体代码如下:

- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions {

/*

推送通知的样式

UIUserNotificationTypeNone   没有样式

UIUserNotificationTypeBadge  改变应用右上角数字

UIUserNotificationTypeSound  带声音

UIUserNotificationTypeAlert  弹出框提示

*/

//判断版本信息是否大于8.0 设置推送的样式

if ([UIDevice currentDevice].systemVersion.doubleValue >= 8.0) {

UIUserNotificationSettings *settings = [UIUserNotificationSettings settingsForTypes:UIUserNotificationTypeAlert|UIUserNotificationTypeBadge|UIUserNotificationTypeSound categories: nil];

//注册通知对象

[application registerUserNotificationSettings:settings];

}

//用作点击推送时跳转

if (launchOptions [UIApplicationLaunchOptionsLocationKey]) {

UILabel *label = [[UILabel alloc]initWithFrame:CGRectMake(100, 400, 200, 100)];

label.text = [NSString stringWithFormat:@"%@",launchOptions];

label.backgroundColor = [UIColor lightGrayColor];

label.font = [UIFont systemFontOfSize:14];

label.numberOfLines = 1;

[self.window.rootViewController.view addSubview:label];

}

return YES;

}

//点击通知打开应用的时候会执行该方法 在前台收到通知的时候也会调用该方法

- (void)application:(UIApplication *)application didReceiveLocalNotification:(UILocalNotification *)notification{

UILabel *label = [[UILabel alloc]initWithFrame:CGRectMake(100, 400, 200, 100)];

label.backgroundColor = [UIColor lightGrayColor];

label.font = [UIFont systemFontOfSize:14];

label.numberOfLines = 1;

[self.window.rootViewController.view addSubview:label];

}

在ViewController.m文件通过button去触发本地消息发送对象,来实现本地消息推送

- (void)viewDidLoad {

[super viewDidLoad];

//通过Button去触发本地消息发送对象

UIButton *button = [UIButton buttonWithType:UIButtonTypeCustom];

button.frame = CGRectMake(100, 100, 100, 50);

[button setTitle:@"添加通知" forState:UIControlStateNormal];

button.backgroundColor = [UIColor brownColor];

button.layer.cornerRadius = 6;

[button addTarget:self action:@selector(doit:) forControlEvents:UIControlEventTouchUpInside];

[self.view addSubview:button];

//移除消息推送

UIButton *button1 = [UIButton buttonWithType:UIButtonTypeCustom];

button1.frame = CGRectMake(100, 200, 100, 50);

[button1 setTitle:@"移除通知" forState:UIControlStateNormal];

button1.backgroundColor = [UIColor brownColor];

button1.layer.cornerRadius = 6;

[button1 addTarget:self action:@selector(remove) forControlEvents:UIControlEventTouchUpInside];

[self.view addSubview:button1];

}

- (void)doit:(UIButton *)sender{

//1.创建一个本地通知对象

UILocalNotification *LocalNotification = [[UILocalNotification alloc]init];

//2.设置具体属性

//2.1设置通知发送的时间

LocalNotification.fireDate = [NSDate dateWithTimeIntervalSinceNow:3];

//2.2设置通知发送的内容

LocalNotification.alertBody = @"主人来消息了";

//2.3设置是否显示提示框

LocalNotification.hasAction = YES;

//2.4设置提示框

LocalNotification.alertAction = @"快来查看";

//2.5设置APP提示的数字

LocalNotification.applicationIconBadgeNumber = 123;

//2.6设置应用提示的声音

LocalNotification.soundName = UILocalNotificationDefaultSoundName;

//3.去调度本地推送通知

[[UIApplication sharedApplication]scheduleLocalNotification:LocalNotification];

[[UIApplication sharedApplication]setApplicationIconBadgeNumber:0];

}

//移除消息推送的方法

- (void)remove{

[[UIApplication sharedApplication]cancelAllLocalNotifications];

}

时间: 2025-01-16 18:45:23

消息推送——本地推送的相关文章

远程推送---本地推送

//本地通知,只有在程序处于非运行状态下,才会发送本地通知 //1.创建本地的通知对象 UILocalNotification *notification = [[UILocalNotification alloc] init]; //2.设置通知触发的时间 notification.fireDate = [NSDate dateWithTimeIntervalSinceNow:5]; //3.设置弹出的提示内容 notification.alertBody = @"消息来了,赶紧去看看吧&qu

iOS 10 添加本地推送(Local Notification)

前言 iOS 10 中废弃了 UILocalNotification ( UIKit Framework ) 这个类,采用了全新的 UserNotifications Framework 来推送通知,从此推送通知也有了自己的标签 UN (这待遇真是没别人了),以及对推送功能的一系列增强改进(两个 extension 和 界面的体验优化),简直是苹果的亲儿子,因此推送这部分功能也成为开发中的重点. 本文主要查看了 iOS 10 的相关文档,整理出了在 iOS 10 下的本地推送通知,由于都是代码,

iOS开发 - ANPs推送通知 标签: 推送通知ANPs远程推送、本地推送

iOS开发 - ANPs推送通知 标签: 推送通知ANPs远程推送本地推送 2015-05-03 14:12 3510人阅读 评论(0) 收藏 举报 本文章已收录于:  iOS知识库  分类: [IOS -事件响应者链](3)  版权声明:本文为博主原创文章,未经博主允许不得转载. 目录(?)[+] 推送通知 注意:这里说的推送通知跟NSNotification有所区别 NSNotification是抽象的,不可见的 推送通知是可见的(能用肉眼看到) iOS中提供了2种推送通知 本地推送通知(L

iOS学习笔记5-推送(信鸽推送)

今天博主有一个集成信鸽推送的需求,遇到了一些困难点,在此和大家分享,希望能够共同进步. 推送分为用户推送,本地推送,远程推送和地理位置推送,其中最常用的就是远程推送,远程推送可以直接编写代码实现功能,也可以使用第三方的SDK,常用的第三方SDK有信鸽推送,极光推送和个推.今天和大家分享一下集成信鸽推送的过程. 1.下载腾讯信鸽SDK 它下面有两个版本:基础版和Pro版 下载地址:http://xg.qq.com/xg/ctr_index/download 注:信鸽ProiOS SDK是信鸽iOS

SWIFT推送之本地推送(UILocalNotification)之二带按钮的消息

上一篇讲到的本地推送是普通的消息推送,本篇要讲一下带按钮动作的推送消息,先上个图瞅瞅: 继上一篇的内容进行小小的改动: 在didFinishLaunchingWithOptions方法内进行以下修改 if (UIDevice.currentDevice().systemVersion as NSString).floatValue >= 8 { // APService.registerForRemoteNotificationTypes( // UIUserNotificationType.B

本地推送 和 远程推送

今天看了一下远程推送,之前写的软件一直没加进这个功能,下个软件貌似要求有这个,所以问了一下度娘,也是有那么一丢丢的小麻烦吧,因为他没跳推送都必须经过苹果APNS,然后再发送给每个安装了软件的用户~~~ ///本地添加 void ,__FUNCTION__); if timeZone是UILocalNotification激发时间是否根据时区改变而改变,如果设置为nil的话,那么UILocalNotification将在一段时候后被激发,而不是某一个确切时间被激发.*/ ofType:@]; fo

ios本地推送demo

- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions {     // Override point for customization after application launch.     //应用图标数字     application.applicationIconBadgeNumber=6;          //申请用

SWIFT推送之本地推送(UILocalNotification)

本地推送通知是通过实例化UILocalNotification实现的.要实现本地化推送可以在AppDelegate.swift中添加代码实现,本事例是一个当App进入后台时推送一条消息给用户. 1.首先在didFinishLaunchingWithOptions方法内添加代码,IOS8推送消息首先要获得用户的同意,在初次安装App时会提示用户是否允许程序推送消息,此方法是App第一次运行的时候被执行一次,每次从后台激活时不执行该方法. func application(application:

iOS 本地推送

在多数移动应用中任何时候都只能有一个应用程序处于活跃状态,如果其他应用此刻发生了一些用户感兴趣的那么通过通知机制就可以告诉用户此时发生的事情. iOS中通知机制又叫消息机制,其包括两类:一类是本地通知:另一类是推送通知,也叫远程通知.两种通知在iOS中的表现一致,可以通过横幅或者弹出提醒 两种形式告诉用户,并且点击通知可以会打开应用程序,但是实现原理却完全不同.今天就和大家一块去看一下如何在iOS中实现这两种机制,并且在文章后面会 补充通知中心的内容避免初学者对两种概念的混淆. 简单些了一个关于