在代碼中注冊推送
在工程中打開AppDelegate.m (Xcode不同版本 可能為XXXXAppDelegate.m)
在.m中添加如下代碼:
-(BOOL)application:(UIApplication*)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions
{//注冊推送功能 (推送的三種類型)
[[UIApplication sharedApplication] registerForRemoteNotificationTypes: (UIRemoteNotificationTypeAlert | UIRemoteNotificationTypeBadge | UIRemoteNotificationTypeSound)];
//判斷程序是不是由推送服務(wù)完成的
if (launchOptions)
{
NSDictionary* pushNotificationKey = [launchOptions objectForKey:UIApplicationLaunchOptionsRemoteNotificationKey];
if (pushNotificationKey)
{
UIAlertView *alert = [[UIAlertView alloc]
initWithTitle:@"推送通知" message:@"這是通過推送窗口啟動的程序,你可以在這里處理推送內(nèi)容" delegate:nil cancelButtonTitle:@"知道了" otherButtonTitles:nil, nil];
[alert show];
[alert release];
}
}
-(void)application:(UIApplication *)application didRegisterForRemoteNotificationsWithDeviceToken:(NSData *)deviceToken
{
//用來獲取設(shè)備 ID 一會要用到。
NSLog(@"Device Token = %@",deviceToken);
}
第一個方法中 :
UIAlertView *alert = [[UIAlertView alloc]
initWithTitle:@"推送通知" message:@"這是通過推送窗口啟動的程序,你可以在這里處理推送內(nèi)容" delegate:nil cancelButtonTitle:@"知道了" otherButtonTitles:nil, nil];
是用來處理程序是因推送打開的時候 執(zhí)行如上代碼。
第二個方法中:
NSLog(@"Device Token = %@",deviceToken);
用來輸出設(shè)備的ID號,等下我們測試需要用到。
添加完代碼之后運行 看到Log中顯示設(shè)備ID:
復(fù)制< >中間的設(shè)備ID
打開附件中的PushMeBaby.zip 這是一個可以向蘋果APNS 服務(wù)器發(fā)送推送信息的小程序。 我們需要用它來做一個模擬的推送。
解壓PushMeBady后 打開這個工程。
把剛才下載的anps.cer 替換工程中的anps.cer。
打開ApplicationDelegate.m。
修改self.deviceToken 的值為 剛剛程序Log中的那個設(shè)備ID。
好了,這里基本上就可以測試程序的推送功能了。
運行PushMeBaby 工程, 第一次運行的時候有一個提示,選擇總是允許。
點擊Push 這時查看你的設(shè)備。(如果沒有響應(yīng),可以重新編譯一下iOS的工程。)
到這里,推送就可以使用PushMeBaby 來傳達至用戶的設(shè)備上了。