iOS - 本地推送

*推送:

1、远程推送(Remote Notification)

2、本地推送(local Notification)

作用:可以让APP不在前台,告知用户APP内部发生的事

效果:

1、没有效果

2、在屏幕顶部显示横幅(显示具体内容)

3、在屏幕中间弹出弹出框(AlertController)(显示具体内容)

4、在锁屏时显示一块横幅

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

-播放音效

-推送通知的使用细节

注意:发送推送通知的时候,如果APP在前台运行,那么推送的通知不会被呈现出来

在发送通知之后,无论APP是打开还是关闭,推送通知都能如期发送,但是用户不一定能如期去接收

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

//判断系统版本

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

UIUserNotificationTypeNone  :没有样式

UIUserNotificationTypeBadge :是否可以改变APP图标右上角的提示数字

UIUserNotificationTypeSound:改通知是否有声音

UIUserNotificationTypeAlert:是否弹出提示

//可以同时设置三种样式或|

UIUserNotificationSettings*settings = [UIUserNotificationSettingssettingsForTypes:UIUserNotificationTypeBadge|UIUserNotificationTypeSound|UIUserNotificationTypeAlertcategories:nil];

//注册通知对象

[applicationregisterUserNotificationSettings:settings];

}

//用作点击推送的时候跳转

//判断是否点击

if(launchOptions[UIApplicationLaunchOptionsLocalNotificationKey]) {

UILabel*label = [[UILabelalloc]initWithFrame:CGRectMake(50,300,300,200)];

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

label.font=[UIFontsystemFontOfSize:14];

label.numberOfLines=0;

[self.window.rootViewController.viewaddSubview:label];

}

returnYES;

}

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

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

//用作点击推送的时候跳转

//判断是否点击

UILabel*label = [[UILabelalloc]initWithFrame:CGRectMake(50,300,300,200)];

label.text=[NSStringstringWithFormat:@"%@",notification];

label.font=[UIFontsystemFontOfSize:14];

label.numberOfLines=0;

[self.window.rootViewController.viewaddSubview:label];

}


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

UILocalNotification*localNot = [[UILocalNotificationalloc]init];

//2、设置具体属性

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

localNot.fireDate= [NSDatedateWithTimeIntervalSinceNow:5];

//2.2、设置发送的内容

localNot.alertBody=@"我是一条通知";

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

localNot.hasAction=YES;

//2.4、设置提示框

localNot.alertAction=@"赶紧去看看";

//2.5、设置APP图标提醒数字

localNot.applicationIconBadgeNumber=8;

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

localNot.soundName=UILocalNotificationDefaultSoundName;

//3、去调度通知

[[UIApplicationsharedApplication]scheduleLocalNotification:localNot];

[[UIApplicationsharedApplication]setApplicationIconBadgeNumber:0];

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • iOS中通知机制又叫消息机制,其包括两类:一类是本地通知;另一类是推送通知,也叫远程通知。两种通知在iOS中...
    七里汀阅读 6,316评论 3 2
  • @(〓〓 iOS-实用技术)[远程/本地推送] 作者: Liwx 邮箱: 1032282633@qq.com 目...
    Liwx阅读 8,599评论 6 28
  • 一、简介 目前说的是基于ios10之前,所以有些类是过期的. 推送分为本地推送和远程推送2种。可以在应用没有打开甚...
    JingYa_Lu阅读 4,417评论 0 0
  • 概念 1.推送通知有5种不同的呈现效果 在屏幕顶部显示一块横幅(显示具体内容) 在屏幕中间弹出一个UIAlertV...
    我是滕先生阅读 19,523评论 20 92
  • 1. 推送通知简介 1.1: 这里说的推送通知跟NSNotification有所区别 NSNotification...
    iYeso阅读 4,652评论 0 0