第一阶段:.net应用程序把要发送的消息、目的iPhone的标识打包,发给APNS。
第二阶段:APNS在自身的已注册Push服务的iPhone列表中,查找有相应标识的iPhone,并把消息发到iPhone。
第三阶段:iPhone把发来的消息传递给相应的应用程序, 并且按照设定弹出Push通知。
从上图我们可以看到。
1、首先是应用程序注册消息推送。
2、 IOS跟APNS Server要deviceToken。应用程序接受deviceToken。
3、应用程序将deviceToken发送给PUSH服务端程序。
4、 服务端程序向APNS服务发送消息。
5、APNS服务将消息发送给iPhone应用程序。
///////证书操作部分省略
在PushChatAppDelegate中的didFinishLaunchingWithOptions方法中加入下面代码:
-
(BOOL)application:(UIApplication
*
)application didFinishLaunchingWithOptions:(NSDictionary
*
)launchOptions
{
self.window.rootViewController
=
self.viewController;
[self.window makeKeyAndVisible];
//
Let the device know we want to receive push notifications
[[UIApplication sharedApplication] registerForRemoteNotificationTypes:
(UIRemoteNotificationTypeBadge
|
UIRemoteNotificationTypeSound
|
UIRemoteNotificationTypeAlert)];
return
YES;
}
通过registerForRemoteNotificationTypes方法,告诉应用程序,能接受push来的通知。
3、在xcode中运行,会弹出下面的提示框:
选择OK。表示此应用程序开启消息通知服务。
在 PushChatAppDelegate.m代码中添加下面方法获取deviceToken :
-
(
void
)application:(UIApplication
*
)application didRegisterForRemoteNotificationsWithDeviceToken:(NSData
*
)deviceToken
{
NSLog(
@"
My token is: %@
"
, deviceToken);
}
-
(
void
)application:(UIApplication
*
)application didFailToRegisterForRemoteNotificationsWithError:(NSError
*
)error
{
NSLog(
@"
Failed to get token, error: %@
"
, error);
}