在(一)中
我们在苹果网站上的配置基本就
OK
了。下面我们在代码中添加注册推送。

在代码中注册推送

在工程中打开
AppDelegate.m (Xcode
不同版本 可能为
XXXXAppDelegate.m)

.m
中添加如下代码
:

-(BOOL)application:(UIApplication*)application   didFinishLaunchingWithOptions:(NSDictionary *)launchOptions

{
//
注册推送功能 
(
推送的三种类型
)

[[UIApplication sharedApplication]  registerForRemoteNotificationTypes: (UIRemoteNotificationTypeAlert | UIRemoteNotificationTypeBadge | UIRemoteNotificationTypeSound)];

  //
判断程序是不是由推送服务完成的

 if (launchOptions)

  {

     NSDictionary* pushNotificationKey = [launchOptions   objectForKey:UIApplicationLaunchOptionsRemoteNotificationKey] ;

      if (pushNotificationKey) 

      {

          UIAlertView *alert = [[UIAlertView alloc] 

                                  initWithTitle:@"
推送通知
" message:@"
这是通过推送窗口启动的程序
,
你可以在这里处理推送内容
" delegate:nil cancelButtonTitle:@"
知道了
" otherButtonTitles:nil, nil];

            [alert show];

            [alert release];  

}

}

    

-(void)application:(UIApplication *)application didRegisterForRemoteNotificationsWithDeviceToken:(NSData *)deviceToken

{

//
用来获取设备 
ID 
一会要用到。

    NSLog(@"Device Token = %@",deviceToken);

 

第一个方法中  :

UIAlertView *alert = [[UIAlertView alloc] 

                                  initWithTitle:@"
推送通知
" message:@"
这是通过推送窗口启动的程序
,
你可以在这里处理推送内容
" delegate:nil cancelButtonTitle:@"
知道了
" otherButtonTitles:nil, nil];

是用来处理程序是因推送打开的时候 执行如上代码。

第二个方法中:

NSLog(@"Device Token = %@",deviceToken);

用来输出设备的
ID
号,等下我们测试需要用到。

添加完代码之后运行 看到
Log
中显示设备
ID

复制
<  >
中间的设备
ID

打开附件中的
PushMeBaby.zip 
这是一个可以向苹果
APNS 
服务器发送推送信息的小程序。

我们需要用它来做一个模拟的推送。

解压
PushMeBady
后 打开这个工程。

把刚才下载的
anps.cer 
替换工程中的
anps.cer

打开
ApplicationDelegate.m

修改
self.deviceToken 
的值为 刚刚程序
Log
中的那个设备
ID

好了,这里基本上就可以测试程序的推送功能了。

运行
PushMeBaby 
工程, 第一次运行的时候有一个提示,选择总是允许。

点击
Push 
这时查看你的设备。( 如果没有响应,可以重新编译一下
iOS
的工程。

      

到这里,推送就可以使用
PushMeBaby 
来传达至用户的设备上了。