帶你走進推送
在推送平臺特別多,例如極光,友盟等等 但實現它的推送功能都是大同小異
配置推送證書 這些我就不再說了百度上搜一大堆
首先直接進入主題講解下載AppDelegate中對于通知需要用到的幾個重要的方法
這里是獲取設備的deviceToken的方法(必須要執行)
-(void)application:(UIApplication *)application didRegisterForRemoteNotificationsWithDeviceToken:(NSData *)deviceToken{ NSLog(@"%@",deviceToken);//這里的Token就是我們設備要告訴服務端的Token碼
}
下面這兩個是接收遠程推送過來消息的方法
UIApplicationDelegate中提供了兩個方法來處理推送的回調,其中第二個方法是iOS7以后才有的:
// 如果app在前臺運行,系統收到推送時會調用該方法
- (void)application:(UIApplication *)application didReceiveRemoteNotification:(NSDictionary *)userInfo {
// 處理推送消息 NSLog(@"userinfo:%@",userInfo); NSLog(@"收到推送消息:%@",[[userInfo objectForKey:@"aps"] objectForKey:@"alert"]);
}
// 不管app是在前臺運行還是在后臺運行,系統收到推送時都會調用該方法
- (void)application:(UIApplication *)applicationdidReceiveRemoteNotification:(NSDictionary *)userInfofetchCompletionHandler:(void (^)(UIBackgroundFetchResult result))completionHandler {if (application.applicationState == UIApplicationStateActive) { NSLog(@"active"); //程序當前正處于前臺
} else if(application.applicationState == UIApplicationStateInactive) { NSLog(@"inactive"); //程序處于后臺
}
}
很明顯可以看出第一個方法的缺陷,就是當程序在后臺運行時候不會調用該方法。