国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 系統 > iOS > 正文

iOS消息遠程推送通知

2020-07-26 03:12:57
字體:
來源:轉載
供稿:網友

本文實例為大家分享了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"];}

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

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 潍坊市| 江北区| 卫辉市| 富裕县| 三门峡市| 西丰县| 石首市| 剑河县| 鸡西市| 加查县| 垫江县| 嵊州市| 商水县| 临泉县| 孙吴县| 丰宁| 英超| 阳曲县| 徐水县| 搜索| 阳朔县| 沭阳县| 南漳县| 镇康县| 五台县| 湘潭县| 平舆县| 亚东县| 县级市| 马龙县| 南陵县| 吉木萨尔县| 鄂温| 孙吴县| 西华县| 双桥区| 乌兰察布市| 蚌埠市| 南雄市| 南通市| 辽阳县|