iOS--推送
推送介绍###
1.分类
- 本地推送通知
- 远程推送通知
2.推送呈现效果
- 屏幕顶部出现一块横幅(显示推送内容)
- 屏幕中部出现一块UIAlertView(显示推送内容)
- 锁屏界面显示横幅(锁屏状态下,显示推送内容)
- 播放音效(提醒用户)
- 更新APP图标的数字(显示有几条推送内容)
3.使用注意
- 应用程序正在前台运行时,发送的推送通知不会显示出来
- 点击通知会打开对应的APP
- 应用打开或者关闭,不影响推送的正常发出
本地推送通知###
步骤####
创建本地通知对象-->设置属性-->调度本地通知-->注册通知权限-->删除通知(如果设置了repeatInterval属性,需要删除通知)
代码####
//创建本地通知
UILocalNotification *localNotification = [[UILocalNotification alloc] init];
//设置通知发出的时间
localNotification.fireDate = [NSDate dateWithTimeIntervalSinceNow:4];
//设置通知的内容
localNotification.alertBody = @"你好,上课了";
//设置锁屏模式下滑块的文字
localNotification.alertAction = @"本地提醒";
//滑块上的文字显示是否生效
localNotification.hasAction = NO;
//点击通知后会触发加载图
localNotification.alertLaunchImage = @"加载图";
//设置alertTitle,在通知中心显示的标题
localNotification.alertTitle = @"didadida";
//设置通知发来的音效,用文件音效
localNotification.soundName = @"system.wav";
//设置应用程序icon右上角的数字
localNotification.applicationIconBadgeNumber = 10;
//设置重复提醒的间隔
// localNotification.repeatInterval = NSCalendarUnitMinute;
//设置通知的其它信息,可以用来判断不同的通知,做不同的操作
localNotification.userInfo = @{@"type":@"name1"};
//调度本地通知
[[UIApplication sharedApplication] scheduleLocalNotification:localNotification];
AppDelegate中代码
- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions {
//程序进来让提醒的数字消失
application.applicationIconBadgeNumber = 0;
//ios8.0后需要设置一下通知的类型
if([[[UIDevice currentDevice] systemVersion] doubleValue] >= 8.0)
{
UIUserNotificationSettings *setting = [UIUserNotificationSettings settingsForTypes:UIUserNotificationTypeBadge | UIUserNotificationTypeSound | UIUserNotificationTypeAlert categories:nil];
[application registerUserNotificationSettings:setting];
}
//界面的跳转(针对应用程序被杀死的状态下的跳转)
if(launchOptions[UIApplicationLaunchOptionsLocalNotificationKey])
{
//此处添加跳转代码
}
return YES;
}
//应用程序在进入前台,或者在前台的时候当收到通知时都会执行该方法
-(void)application:(UIApplication *)application didReceiveLocalNotification:(nonnull UILocalNotification *)notification
{
if(application.applicationState == UIApplicationStateInactive)
{
//程序进来让提醒的数字消失
application.applicationIconBadgeNumber = 0;
//可以在这里进行界面的跳转操作
}
}
远程推送通知###
知识点了解####
- APNS(Apple Push Notification Services)苹果推送服务器
- 不管用户打开还是关闭APP,只要联网,都能接收到服务器推送的远程通知
- 所有的苹果设备,在联网状态下,都会与苹果的服务器建立长连接(数据传输速度快,数据保持最新状态)
远程推送原理图####
开发到发布具有推送功能的APP的流程####
1.开发iOS程序的推送功能,iOS端需要做的事:
请求苹果获得deviceToken
得到苹果返回的deviceToken
发送deviceToken给公司的服务器
监听用户对通知的点击
2.调试iOS的远程服务功能,必备条件:
真机
调试推送需要的证书文件:
1.aps_development.cer:某台电脑就能调试某个APP的推送服务
2.iphone5_qq.mobileprovision:某台电脑就能利用某台设备调试某个程序
3.发布具有推送服务的APP
aps_production.cer:如果发布的程序中包含了推送服务,就必须安装这个证书
qq.mobileprovision:某台电脑就能发布某个程序