欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

iOS消息遠程推送通知

 更新時間:2016年09月21日 16:23:21   投稿:lijiao  
這篇文章主要為大家詳細介紹了iOS消息遠程推送通知代碼,具有一定的參考價值,感興趣的小伙伴們可以參考一下

本文實例為大家分享了iOS消息推送、iOS遠程通知代碼,供大家參考,具體內容如下

消息推送

/*
 要開發(fā)測試消息機制的程序,必須用真機測試
 
 推送消息的類型
 UIRemoteNotificationTypeNone  不接收推送消息
 UIRemoteNotificationTypeBadge  接收圖標數(shù)字
 UIRemoteNotificationTypeSound  接收音頻
 UIRemoteNotificationTypeAlert  接收消息文字
 UIRemoteNotificationTypeNewsstandContentAvailability 接收訂閱消息
 
 要想監(jiān)聽到注冊的deviceToken需要在蘋果的開發(fā)者中心,進行一些設置工作才可以。
 */

- (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. 從系統(tǒng)偏好取之前的token
  NSData *oldToken = [[NSUserDefaults standardUserDefaults]objectForKey:@"deviceToken"];
  // 2. 新舊token進行比較
  if (![oldToken isEqualToData:deviceToken]) {
    // 3. 如果不一致,保存token到系統(tǒng)偏好
    [[NSUserDefaults standardUserDefaults]setObject:deviceToken forKey:@"deviceToken"];
    
    // 4. 使用post請求傳輸新舊token至服務器
    // 1) url
    // 具體的URL地址以及POST請求中的參數(shù)和格式,是由公司的后端程序員提供的
    // 2) request POST body(包含新舊token的數(shù)據(jù))
    // 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轉換成字符串,以便后續(xù)使用
  NSString *token = [deviceToken description];
  NSLog(@"description %@", token);
  
  // =======================================================
  // 如果DeviceToken發(fā)生變化,需要通知服務器
  // 每次都記錄住從服務器獲取到得DeviceToken
  // 再次獲取時進行比對
  // 從偏好設置取出當前保存的Token
  NSString *oldToken = [[NSUserDefaults standardUserDefaults] objectForKey:@"DeviceToken"];
  
  // 當Token發(fā)生變化時,提交給服務器保存新的Token
//  if (![oldToken isEqualToString:token]) {
//    
//    // 將deviceToken通過Post請求,提交給自己的服務器即可!
//    // 發(fā)送Post請求
//    NSURL *url = [NSURL URLWithString:@"公司后臺服務器的網(wǎng)址"];
//    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;
//    
//    // 同步:必須執(zhí)行完才能繼續(xù)
//    // 異步:直接交給其他線程工作,不干擾主線程工作,用戶也感覺不到延遲
//    [NSURLConnection sendAsynchronousRequest:request queue:[NSOperationQueue mainQueue] completionHandler:^(NSURLResponse *response, NSData *data, NSError *connectionError) {
//      // 偷偷的將用戶信息傳送到公司的服務器
//    }];
//  }
  
  // 將Token保存至系統(tǒng)偏好
  [[NSUserDefaults standardUserDefaults] setObject:token forKey:@"DeviceToken"];
}

以上就是本文的全部內容,希望對大家的學習有所幫助,也希望大家多多支持腳本之家。

相關文章

  • iOS實現(xiàn)獲取系統(tǒng)iTunes音樂的方法示例

    iOS實現(xiàn)獲取系統(tǒng)iTunes音樂的方法示例

    這篇文章主要給大家介紹了關于iOS如何實現(xiàn)獲取系統(tǒng)iTunes音樂的相關資料,文中通過示例代碼給大家詳細介紹了實現(xiàn)的方法,并給大家介紹了MPMediaPickerController的相關知識,對大家的學習或者工作具有一定的幫助,需要的朋友們下面隨著小編來一起學習學習吧。
    2017-11-11
  • iOS中多線程的經典崩潰總結大全

    iOS中多線程的經典崩潰總結大全

    這篇文章主要給大家介紹了關于iOS中多線程的一些經典崩潰的相關資料,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習學習吧。
    2017-12-12
  • ios端ijkplayer編譯教程

    ios端ijkplayer編譯教程

    下面小編就為大家分享一篇ios端ijkplayer編譯教程,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧
    2018-01-01
  • iOS逆向工程使用dumpdecrypted工具給App脫殼

    iOS逆向工程使用dumpdecrypted工具給App脫殼

    這篇文章主要介紹了iOS逆向工程使用dumpdecrypted工具給App脫殼的相關資料,本文圖文并茂給大家介紹的非常詳細,具有參考借鑒價值,需要的朋友可以參考下
    2016-09-09
  • 詳解IOS的Automatically Sign在設備上打包

    詳解IOS的Automatically Sign在設備上打包

    本篇教程主要給大家分享了IOS的Automatically Sign如何在設備上直接打包,有需要的朋友參考學習下。
    2018-01-01
  • 講解iOS開發(fā)中基本的定位功能實現(xiàn)

    講解iOS開發(fā)中基本的定位功能實現(xiàn)

    這篇文章主要介紹了講解iOS開發(fā)中基本的定位功能實現(xiàn),示例基于傳統(tǒng)的Objective-C,需要的朋友可以參考下
    2015-10-10
  • iOS開發(fā)中UITableview控件的基本使用及性能優(yōu)化方法

    iOS開發(fā)中UITableview控件的基本使用及性能優(yōu)化方法

    這篇文章主要介紹了iOS開發(fā)中UITableview控件的基本使用及性能優(yōu)化方法,代碼基于傳統(tǒng)的Objective-C,需要的朋友可以參考下
    2015-12-12
  • iOS版微信朋友圈識別圖片位置信息 如何實現(xiàn)?

    iOS版微信朋友圈識別圖片位置信息 如何實現(xiàn)?

    這篇文章主要為大家詳細介紹了iOS版微信朋友圈識別圖片位置信息的實現(xiàn)方法
    2016-10-10
  • iPhoneX 各種適配記錄筆記(超全面)

    iPhoneX 各種適配記錄筆記(超全面)

    iPhone X出來之后,關于劉海的各種適配成了程序員們首要考慮的問題,下面這篇文章主要給大家介紹了關于iPhoneX 各種適配的相關資料,文中通過示例代碼介紹的非常詳細,需要的朋友可以參考借鑒,下面來一起看看吧。
    2017-12-12
  • IOS 開發(fā)之swift中UIView的擴展使用的實例

    IOS 開發(fā)之swift中UIView的擴展使用的實例

    這篇文章主要介紹了IOS 開發(fā)之swift中UIView的擴展使用的實例的相關資料,希望通過本文能幫助到大家,需要的朋友可以參考下
    2017-09-09

最新評論