一.本地推送
1.什么是本地推送
本地推送就是新建一条固定时间推送过来的消息,不需要网络.可以做闹钟之类的功能
2.创建本地推送消息
UILocalNotification *localNoti = [[UILocalNotification alloc]init];
localNoti.fireDate = [NSDate dateWithTimeIntervalSinceNow:i*5];
localNoti.alertBody = @"懒虫起床";
localNoti.soundName = @"CAT2.WAV";
localNoti.applicationIconBadgeNumber = 1;
3.将本地推送消息设置给application对象
[[UIApplication sharedApplication]scheduleLocalNotification:localNoti];
4.APP接收到了本地推送消息
- (void)application:(UIApplication *)application didReceiveLocalNotification:(UILocalNotification *)notification
二.远程推送
1.什么是远程推送
由于iOS操作系统限制,我们APP在后台不能做操作,也不能接收任何数据,所以需要用推送来接收消息.
2.远程推送原理
1、注册:为应用程序申请消息推送服务。此时你的设备会向APNs服务器发送注册请求。
2、APNs服务器接收请求,并将deviceToken返给你设备上的应用程序
3、客户端应用程序将deviceToken发送给后台服务器程序,后台接收并储存。
4、后台服务器向APNs服务器发送推送消息
5、APNs服务器将消息发给deviceToken对应设备上的应用程序
3.APP中如何注册远程通知
1.ios8以前:
[application registerForRemoteNotificationTypes:(UIRemoteNotificationTypeAlert | UIRemoteNotificationTypeBadge | UIRemoteNotificationTypeSound)];
2.ios8以后:
[application registerUserNotificationSettings:[UIUserNotificationSettings settingsForTypes:(UIUserNotificationTypeAlert | UIUserNotificationTypeBadge | UIUserNotificationTypeSound) categories:nil]];
[application registerForRemoteNotifications];
4.注册成功回调
- (void)application:(UIApplication *)application didRegisterForRemoteNotificationsWithDeviceToken:(NSData *)deviceToken
5.注册失败回调
- (void)application:(UIApplication *)application didFailToRegisterForRemoteNotificationsWithError:(NSError *)error
6.收到推送消息回调
- (void)application:(UIApplication *)application didReceiveRemoteNotification:(NSDictionary *)userInfo
7.造成审核失败的原因
1.程序有bug
2.使用苹果私有的API
3.使用了暴力色情....
4.邪教
5.APP和市场上太过类似.
6….
8.做一个APP上架到苹果市场
1.注册一个开发者账号,99刀
2.做真机调试证书,推送证书
——开发流程(developer)
3.向APNS获取DeviceToken
4.APNS返回DeviceToken
5.把DeviceToken发给后台服务器
6.后台服务器向APNS推消息
7.APNS推消息到你的程序
——上架流程
做一个上架证书(production)
xcode工程,导入上架证书
项目开发完毕,Xcode->Product->Archive->submit