ios8以上远程推送 demo

- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions

{

self.window = [[UIWindow alloc] initWithFrame:[[UIScreen mainScreen] bounds]];

// Override point for customization after application launch.

//注册推送通知

//    [[UIApplication sharedApplication]registerForRemoteNotificationTypes:(UIRemoteNotificationTypeAlert | UIRemoteNotificationTypeBadge | UIRemoteNotificationTypeSound)];

//

if ([[[UIDevice currentDevice] systemVersion] floatValue] >= 8.0) {

[[UIApplication sharedApplication] registerUserNotificationSettings:[UIUserNotificationSettings

settingsForTypes:(UIUserNotificationTypeSound |

UIUserNotificationTypeAlert |

UIUserNotificationTypeBadge)

categories:nil]];

[[UIApplication sharedApplication] registerForRemoteNotifications];

}

else {

[[UIApplication sharedApplication]registerForRemoteNotificationTypes:UIRemoteNotificationTypeAlert|

UIRemoteNotificationTypeBadge|

UIRemoteNotificationTypeSound];

}

if (launchOptions) {

// UIApplicationLaunchOptionsRemoteNotificationKey 这个key值就是push的信息

NSDictionary *dic = [launchOptions objectForKey:UIApplicationLaunchOptionsRemoteNotificationKey];

// 为了复用代码,统一到下面这个处理方法中handlePushNotify:

[self handlePushNotify:dic fromBuld:_ISPushFromClosed];          //如果程序没有启动,点击推送消息进入程序,需要根据推送消息做一些处理,如:视图切换等。

}

//注册远程推送,成功后的代理方法

- (void)application:(UIApplication *)application didRegisterForRemoteNotificationsWithDeviceToken:(NSData *)deviceToken{

//苹果服务器返回的token (苹果服务器用来标识手机的唯一编号)

//可以交给后台,然后后台需要给此发送远程推送的时候直接用这个token

NSString *tokenStr = [deviceToken description];

NSLog(@"token:%@",tokenStr);

}

//注册远程推送失败

-(void)application:(UIApplication *)application didFailToRegisterForRemoteNotificationsWithError:(NSError *)error

{

NSLog(@"注册推送失败%@",error);

}

//程序正在运行时,点击推送消息所走的方法

-(void)application:(UIApplication *)application didReceiveRemoteNotification:(NSDictionary *)userInfo

{

//在这里可以根据推送信息做一些操作

[self handlePushNotify:userInfo fromBuld:_ISPushFromOpen];

}

-(void)handlePushNotify:(NSDictionary *)dic fromBuld:(NSString *)buld

{

// 根据buld判断是哪里传来的值

/*

dic = {

aps =     {

alert = "\U627e\U5927\U592b\U63d0\U793a\Uff1ahdf21\U7528\U6237\U7533\U8bf7\U52a0\U5165\U60a8\U7684\U5c0f\U680b\U5708\U5708\U5b50";

sound = default;

target =         {

"param_list" =             (

{

"param_name" = "circle_id";

"param_value" = 2204;

},

{

"param_name" = "circle_name";

"param_value" = "\U5c0f\U680b\U5708";

},

{

"param_name" = type;

"param_value" = 1;

}

);

topage = "/gooddoc/server/index.php/circle/getCircleMembersNews";

};

};

*/

}

时间: 2024-10-22 00:29:36

ios8以上远程推送 demo的相关文章

IOS8下的远程推送(转载)

原文地址:http://blog.sina.com.cn/s/blog_71715bf80101615c.html 昨天做了一下远程推送,今天写下来,分享给需要的人.参考了很多篇文章,或许是iOS8的改动,没有一篇可以完整的看下来,所以打算自己写一篇. 后台我也写了,用的是SAE,PHP代码,很简单,调用SAE封装好的一个类就可以向APNS发推送信息. 首先,来说一下苹果的推送机制.顾名思义,推送,是指服务器向客户端发送消息,那么在iOS中,应用是被后台挂起的,并不能一直连接网络,那么服务器怎么

iOS8下的远程推送

昨天做了一下远程推送,今天写下来,分享给需要的人.参考了很多篇文章,或许是iOS8的改动,没有一篇可以完整的看下来,所以打算自己写一篇. 后台我也写了,用的是SAE,PHP代码,很简单,调用SAE封装好的一个类就可以向APNS发推送信息. 首先,来说一下苹果的推送机制.顾名思义,推送,是指服务器向客户端发送消息,那么在iOS中,应用是被后台挂起的,并不能一直连接网络,那么服务器怎么才能把消息发送到客户端呢?这就用到推送,苹果的推送机制,是只能由APNS发送推送通知,所以你自己的后台服务器想给客户

ios (推送之远程推送)升级成ios8系统之后有些程序接收不到远程推送

维护一个程序,当手机升级到ios8之后就不能接收到远程推送,显示注册失败,查了下资料,原来是没有获取用户许可,加了个方法试了下,ok if ([[[UIDevice currentDevice]systemVersion ]integerValue] >= 8) { UIUserNotificationSettings*setting = [UIUserNotificationSettings settingsForTypes:UIUserNotificationTypeAlert|UIUser

远程推送(个推)

大家所说的推送一般都是指远程推送.远程推送是指我们需要通过苹果的服务器向我们的应用程序发送消息,即使用户将应用程序关闭用户也会收到消息横幅.极光推送大家估计是大家都在使用的,今天我们主要来看一下个推推送.他们的流程其实是一样的,在此之前,还是先说一下整个远程推送的流程吧. 1)首先作为应用程序,我们先要获取用户的授权,如果用户不允许,那么我们是无法进行推送的.在iOS8.0推出之后,苹果的授权做了一些调整,废话不多说,请看代码. if ([[[UIDevice currentDevice] sy

iOS 远程推送的详细配置

首先,来说一下苹果的推送机制.顾名思义,推送,是指服务器向客户端发送消息,那么在iOS中,应用是被后台挂起的,并不能一直连接网络,那么服务器怎么才能把消息发送到客户端呢?这就用到推送,苹果的推送机制,是只能由APNS发送推送通知,所以你自己的后台服务器想给客户端推送通知,得把要推送的内容发送给APNS. 说到这里,如果还不了解苹果的推送机制,可以自行查看资料.总之整体的流程就是:APP启动的时候,获取本设备的device_token,然后把这个device_token告诉你自己的服务器,服务器拿

iOS开发——远程通知,远程推送(RemoteNotification)

iOS中的远程通知,也叫远程推送,使用频率非常频繁,它主要是通过苹果apns服务器主动发起找到被推送的设备,把信息传达给用户,如果对应程序没有正在运行,那么远程通知就会先到通知中心,展示在通知栏上面,这里记录下我使用远程通知的几个步骤. 一.创建推送证书. 推送证书的创建非常简单,跟创建开发证书类似. 1. 创建APP ID,勾选Explicit App ID也就是明确的ID,这样才能勾选使用下面的Push Notification. 然后直接一路到complete即可. 2. 创建推送证书,推

APNs 远程推送

APNs 远程推送 生成推送证书     1.登陆开发者中心: https://developer.apple.com     2.点开 certificates identifiers 和 proversionprofiles 里面     3.创建APPID. 勾选 push notification servers服务     4.搜索刚才创建的APPID, 点击edit, 配置证书, 下载双击    5.证书创建完成, 钥匙链内右键导出p12     1.App key     2.真机

iOS开发中的远程推送实现(最新,支持iOS9)

我的个人项目<丁丁印记>中加入了远程推送功能,按照操作说明去做还是比较容易实现的,但是学的不够不系统,因此这篇文章希望总结一下最新的iOS推送功能,因为iOS8之后的推送和致之前的版本是有所不同的,也希望想能帮助到需要的朋友.这篇文章将从零开始,向大家介绍远程推送功能的原理和使用. 什么是远程推送通知 顾名思义,就是从远程服务器推送给客户端的通知(需要联网)远程推送服务,又称为APNs(Apple Push Notification Services). 为什么程序中需要远程推送功能 1.传统

iOS-项目远程推送1

一.苹果开发者账号分类 从价格分类: 1.$99 (1).个人账号 (2).公司账号:需要法人信息,营业执照,邓白氏编码 使用:用于上传App到AppStore 2.$299 企业账号:需要邓白氏编码 使用:用于公司内部测试,不用于盈利 3.免费 (1).个人申请账号:仅可以用于真机调试 (2).院校账号:仅可以用于真机调试,通过苹果认证的高校,可以使用 二.关于账号的使用 1.证书 (1).测试证书 每个账号最多能创建2个,生成证书需要使用创建CSR文件[1.通过钥匙串生成 2.文件包含:当前