本文實例為年夜家分享了IOS新聞推送、IOS長途告訴代碼,供年夜家參考,詳細內容以下
新聞推送
/*
要開辟測試新聞機制的法式,必需用真機測試
推送新聞的類型
UIRemoteNotificationTypeNone 不吸收推送新聞
UIRemoteNotificationTypeBadge 吸收圖標數字
UIRemoteNotificationTypeSound 吸收音頻
UIRemoteNotificationTypeAlert 吸收新聞文字
UIRemoteNotificationTypeNewsstandContentAvailability 吸收定閱新聞
要想監聽到注冊的deviceToken須要在蘋果的開辟者中間,停止一些設置任務才可以。
*/
- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions
{
// 設置運用法式可以或許吸收APNS推送的新聞
[application registerForRemoteNotificationTypes:UIRemoteNotificationTypeAlert | UIRemoteNotificationTypeBadge | UIRemoteNotificationTypeSound];
self.Window = [[UIWindow alloc] initWithFrame:[[UIScreen mainScreen] bounds]];
self.Window.backgroundColor = [UIColor whiteColor];
[self.window makeKeyAndVisible];
return YES;
}
#pragma mark - 獲得DeviceToken
- (void)application:(UIApplication *)application didRegisterForRemoteNotificationsWithDeviceToken:(NSData *)deviceToken
{
NSLog(@"%@", deviceToken);
// 1. 從體系偏好取之前的token
NSData *oldToken = [[NSUserDefaults standardUserDefaults]objectForKey:@"deviceToken"];
// 2. 新舊token停止比擬
if (![oldToken isEqualToData:deviceToken]) {
// 3. 假如紛歧致,保留token到體系偏好
[[NSUserDefaults standardUserDefaults]setObject:deviceToken forKey:@"deviceToken"];
// 4. 應用post要求傳輸新舊token至辦事器
// 1) url
// 詳細的URL地址和POST要求中的參數和格局,是由公司的後端法式員供給的
// 2) request POST body(包括新舊token的數據)
// 3) connection 的異步
}
}
長途告訴
/**
長途新聞推送必需在真機上運轉!
*/
- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions
{
// 須要告知蘋果的辦事器,以後運用法式須要吸收長途告訴
[application registerForRemoteNotificationTypes:UIRemoteNotificationTypeAlert | UIRemoteNotificationTypeBadge | UIRemoteNotificationTypeSound];
return YES;
}
#pragma mark - 獲得到裝備的代號(令牌)
// 吸收到蘋果前往的裝備代號
- (void)application:(UIApplication *)application didRegisterForRemoteNotificationsWithDeviceToken:(NSData *)deviceToken
{
// 第一次運轉獲得到DeviceToken時光會比擬長!
NSLog(@"%@", deviceToken);
// 將deviceToken轉換成字符串,以便後續應用
NSString *token = [deviceToken description];
NSLog(@"description %@", token);
// =======================================================
// 假如DeviceToken產生變更,須要告訴辦事器
// 每次都記載住從辦事器獲得到得DeviceToken
// 再次獲得時停止比對
// 從偏好設置掏出以後保留的Token
NSString *oldToken = [[NSUserDefaults standardUserDefaults] objectForKey:@"DeviceToken"];
// 當Token產生變更時,提交給辦事器保留新的Token
// if (![oldToken isEqualToString:token]) {
//
// // 將deviceToken經由過程Post要求,提交給本身的辦事器便可!
// // 發送Post要求
// NSURL *url = [NSURL URLWithString:@"公司後台辦事器的網址"];
// NSMutableURLRequest *request = [NSMutableURLRequest requestWithURL:url cachePolicy:NSURLRequestUseProtocolCachePolicy timeoutInterval:10.f];
//
// request.HTTPMethod = @"POST";
// request.HTTPBody = @"轉換後的裝備ID和其他信息[之前的Token]";
//
// // SQL: update t_deviceTable set token = newToken where token = oldToken;
//
// // 同步:必需履行完能力持續
// // 異步:直接交給其他線程任務,不攪擾主線程任務,用戶也感到不到延遲
// [NSURLConnection sendAsynchronousRequest:request queue:[NSOperationQueue mainQueue] completionHandler:^(NSURLResponse *response, NSData *data, NSError *connectionError) {
// // 悄悄的將用戶信息傳送到公司的辦事器
// }];
// }
// 將Token保留至體系偏好
[[NSUserDefaults standardUserDefaults] setObject:token forKey:@"DeviceToken"];
}
以上就是本文的全體內容,願望對年夜家的進修有所贊助,也願望年夜家多多支撐本站。
【iOS新聞長途推送告訴】的相關資料介紹到這裡,希望對您有所幫助! 提示:不會對讀者因本文所帶來的任何損失負責。如果您支持就請把本站添加至收藏夾哦!