- 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>
如有不當、錯誤之處,歡迎指正!