- 1.iOS消息推送的工作机制可以简单的用下图来概括:
- (1)Provider是指某个iPhone软件的Push服务器
- (2)APNS是Apple Push Notification Service的缩写,是苹果的服务器
上图可以分为三个阶段:
(1)应用程序把要发送的消息、目的iPhone的标识打包,发给APNS。
(2)APNS在自身的已注册Push服务的iPhone列表中,查找有相应标识的iPhone,并把消息发送到iPhone。
(3)iPhone把发来的消息传递给相应的应用程序,并且按照设定弹出Push通知。
从上图我们可以看到:
(1)应用程序注册消息推送
(2)iOS从APNS Server获取device token,应用程序接收device token
(3)应用程序将device token发送给PUSH服务端程序
(4)服务端程序向APNS服务发送消息
(5)APNS服务将消息发送给iPhone应用程序
- 2.本地推送通知
<pre>
UILocalNotification *notification = [[UILocalNotification alloc] init];
NSDate *dateNow = [NSDate date];
notification.fireDate = [dateNow addTimeInterval:1.0];
notification.timeZone = [NSTimeZone defaultTimeZone];
...
// 启用推送通知
[[ UIApplication sharedApplication] scheduleLocalNotification:notification];
</pre>
- 3.远程推送通知
<pre>
@implementation AppDelegate
(BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions {
// 注册远程推送通知
[[UIApplication sharedApplication] registerForRemoteNotificationTypes:UIRemoteNotificationTypeAlert | UIRemoteNotificationTypeBadge | UIRemoteNotificationTypeSound];
return YES;
}(void)application:(UIApplication *)application didReceiveRemoteNotification:(NSDictionary *)userInfo {
// 处理推送通知
NSLog(@"%@", userInfo);
}
</pre>
如有不当、错误之处,欢迎指正!