你好,歡迎來到IOS教程網

 Ios教程網 >> IOS編程開發 >> IOS開發綜合 >> iOS新聞長途推送告訴

iOS新聞長途推送告訴

編輯:IOS開發綜合

本文實例為年夜家分享了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新聞長途推送告訴】的相關資料介紹到這裡,希望對您有所幫助! 提示:不會對讀者因本文所帶來的任何損失負責。如果您支持就請把本站添加至收藏夾哦!

  1. 上一頁:
  2. 下一頁:
蘋果刷機越獄教程| IOS教程問題解答| IOS技巧綜合| IOS7技巧| IOS8教程
Copyright © Ios教程網 All Rights Reserved