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消息推送
, ios远程推送通知
, iOS远程通知
iOS远程推送
ios远程消息推送代码、ios远程消息推送、ios 点击远程推送消息、ios 改远程推送消息、ios 关闭远程推送通知,以便于您获取更多的相关知识。

时间: 2024-08-30 06:27:48

iOS消息远程推送通知_IOS的相关文章

iOS实现远程推送原理及过程_IOS

推送通知,是现在的应用必不可少的功能.那么在 iOS 中,我们是如何实现远程推送的呢?iOS 的远程推送原理又是什么呢?在做 iOS 远程推送时,我们会遇到各种各样的问题.那么首先让我们准备一些做推送需要的东西.我们需要一个付费的苹果开发者账号(免费的不可以做远程推送),有了开发者账号,我们可以去苹果开发者网站,配置自己所需要的推送的相关证书.然后下载证书,供我们后面使用,详细的证书配置过程,我们下面再说. 首先我们要说说iOS推送通知的基本原理: 苹果的推送服务通知是由自己专门的推送服务器AP

ios-iOS远程推送通知和自定义消息

问题描述 iOS远程推送通知和自定义消息 类似于微信,当有好友发送消息过来时,应用在后台也可以接收到,并以通知的样式显示,这到底是远程推送通知实现的还是自定义消息实现的? 解决方案 iOS远程推送通知iOS远程推送通知IOS远程推送通知 解决方案二: 想想都知道是怎么回事.难道你想让app在后台一直等待接收信息?浪费电.

ios-如何检索和处理远程推送通知?

问题描述 如何检索和处理远程推送通知? 在应用没在运行时获取远程通知,我找到的方法: UILocalNotification *localNotification = [launchOptions objectForKey:UIApplicationLaunchOptionsRemoteNotificationKey] 在方法: - (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDi

iPhone/iPad开发通过LocalNotification实现iOS定时本地推送功能_IOS

通过iOS的UILocalNotification Class可以实现本地app的定时推送功能,即使当前app是后台关闭状态.  可以实现诸如,设置app badgenum,弹出一个alert,播放声音等等,实现很简单  UILocalNotification *notification=[[UILocalNotification alloc] init]; if (notification!=nil) { NSDate *now=[NSDate new]; notification.fireD

iOS注册远程推送消息证书后提示此证书签发者无效的解决办法

大熊猫猪·侯佩原创或翻译作品.欢迎转载,转载请注明出处. 如果觉得写的不好请多提意见,如果觉得不错请多多支持点赞.谢谢! hopy ;) 我们在编写关于远程推送消息的App时需要注册一个相关的证书,我们可以到Apple开发网站的Certificates, Identifiers & Profiles页面首先创建一个App ID. 其中进入Push Notifications选项,并且在其子项Development SSL Certificate中选择创建证书(因为该证书是调试用的,所以在Deve

iOS 玩转推送通知

前言 推送通知,想必大家都很熟悉,关于原理之类的,这里就不过多阐述.在这里我们主要介绍下iOS8及iOS9之后关于推送的新功能.大家可能见过听说过,但可能有一些朋友并没有上手做过.这篇文章便给大家详细介绍推送中的快捷按钮及快捷回复等功能的实现. 快捷点赞,如微博点赞功能 效果图大家可以先看下: 首先先说如何为自己的推送添加快捷功能,该Demo中的动作 "赞",代码如下: //创建消息上面要添加的动作     UIMutableUserNotificationAction *action

iOS开发之(APNS)远程推送实现代码 附证书与真机调试_IOS

远程推送通知 什么是远程推送通知 顾名思义,就是从远程服务器推送给客户端的通知(需要联网)远程推送服务,又称为APNs(ApplePush Notification Services) 为什么需要远程推送通知传统获取数据的局限性只要用户关闭了app,就无法跟app的服务器沟通,无法从服务器上获得最新的数据内容远程推送通知可以解决以上问题不管用户打开还是关闭app,只要联网了,都能接收到服务器推送的远程通知远程推送通知使用须知所有的苹果设备,在联网状态下,都会与苹果的服务器建立长连接什么是长连接只

iOS远程推送Push开发教程_IOS

远程推送通知 什么是远程推送通知 顾名思义,就是从远程服务器推送给客户端的通知(需要联网)远程推送服务,又称为APNs(Apple Push Notification Services) 为什么需要远程推送通知 传统获取数据的局限性 只要用户关闭了app,就无法跟app的服务器沟通,无法从服务器上获得最新的数据内容 远程推送通知可以解决以上问题 不管用户打开还是关闭app,只要联网了,都能接收到服务器推送的远程通知 远程推送通知使用须知 所有的苹果设备,在联网状态下,都会与苹果的服务器建立长连接

iOS远程推送原理及实现过程

原文出自[听云技术博客]:http://blog.tingyun.com/web/article/detail/571 推送通知,是现在的应用必不可少的功能.那么在 iOS 中,我们是如何实现远程推送的呢?iOS 的远程推送原理又是什么呢?在做 iOS 远程推送时,我们会遇到各种各样的问题.那么首先让我们准备一些做推送需要的东西.我们需要一个付费的苹果开发者账号(免费的不可以做远程推送),有了开发者账号,我们可以去苹果开发者网站,配置自己所需要的推送的相关证书.然后下载证书,供我们后面使用,详细