现在的一些第三方的推送平台挺好用,主要是因为他们有类似微信公众平台一样的管理后台,简单易用,封装了很多开发者需要的推送功能。

下面以个推为例:

1.在个推的应用配置iOS部分设置自己的BounleID以及上传自己的推送证书

推送证书的创建和P12文件的生成请移步:http://docs.igetui.com/pages/viewpage.action?pageId=590063

2.工程中集成SDK

这种三方的框架集成比较简单,可以参考个推的APPDemo进行集成,主要就是导入库,然后在APPdelegate配置下就好了。

demo以及文档地址:http://docs.igetui.com/pages/viewpage.action?pageId=1934080

3.代码的地方需要注意的是:

在线的推送和离线的推送入口是不一样的

离线的时候,是通过苹果服务器周转的推送的delegate入口:

- (void)application:(UIApplication *)application didReceiveRemoteNotification:(NSDictionary *)userinfo {
// [4-EXT]:处理APN
NSString *payloadMsg = [userinfo objectForKey:@"payload"];
if (payloadMsg) {
NSString *record = [NSString stringWithFormat:@"[APN]%@, %@", [NSDate date], payloadMsg];
NSLog(@"获得推送消息1:%@",record);
}
}

在线的来自于个推服务器直接的消息发送,个推的delegate,然后可以使用下面的函数做一个本地的通知:

- (void)GeTuiSdkDidReceivePayload:(NSString *)payloadId andTaskId:(NSString *)taskId andMessageId:(NSString *)aMsgId fromApplication:(NSString *)appId
{
// [4]: 收到个推消息
_payloadId = [payloadId copy]; NSData* payload = [GeTuiSdk retrivePayloadById:payloadId]; NSString *payloadMsg = nil;
if (payload) {
payloadMsg = [[NSString alloc] initWithBytes:payload.bytes
length:payload.length
encoding:NSUTF8StringEncoding];
} NSString *record = [NSString stringWithFormat:@"%d, %@, %@", ++_lastPayloadIndex, [self formateTime:[NSDate date]], payloadMsg]; NSLog(@"task id : %@, messageId:%@,内容:%@", taskId, aMsgId,record);
[self createNotifiction:payloadMsg];
}

本地通知:

-(void)createNotifiction:(NSString *)content{
//定义本地通知对象
UILocalNotification *notification=[[UILocalNotification alloc]init];
//设置调用时间
notification.fireDate=[NSDate dateWithTimeIntervalSinceNow:];//通知触发的时间,10s以后
notification.repeatInterval=;//通知重复次数
//notification.repeatCalendar=[NSCalendar currentCalendar];//当前日历,使用前最好设置时区等信息以便能够自动同步时间 //设置通知属性
notification.alertBody=content; //通知主体
notification.applicationIconBadgeNumber=;//应用程序图标右上角显示的消息数
notification.alertAction=@"滑动来查看"; //待机界面的滑动动作提示
//notification.alertLaunchImage=@"Default";//通过点击通知打开应用时的启动图片,这里使用程序启动图片
notification.soundName=UILocalNotificationDefaultSoundName; //设置用户信息
notification.userInfo=@{@"type":@"LocalNotification"};//绑定到通知上的其他附加信息 //调用通知
[[UIApplication sharedApplication] scheduleLocalNotification:notification];
}

具体请参考关于个推推送方式文档:

http://docs.igetui.com/pages/viewpage.action?pageId=2687544#iOSSDK130集成步骤-3、更多集成方案:个推SDK透传消息非APNS(可选)

最新文章

  1. Android 基于Android的手机邮件收发(JavaMail)之三(邮件接收)
  2. 使用ycsb测试cassandra
  3. .net 4.0 自定义本地缓存策略的不同实现
  4. JavaScript:表单验证模型
  5. oracle创建用户赋予权限
  6. Cocos2dx坐标转换
  7. Effective C++ 笔记一 让自己习惯C++
  8. Java中的native方法
  9. ios学习之常见问题记录
  10. #define指令
  11. 深度学习框架Keras介绍及实战
  12. Nikto and whatweb
  13. java 根据Url下载对应的文件到指定位置,读txt文件获取url
  14. 【运维】虚拟机如何安装CentOS
  15. 软件工程M1/M2总结
  16. Actor模式初步入门
  17. (笔记)Linux内核中内存相关的操作函数
  18. Could not calculate build plan: Plugin org.apache.maven.plugins:maven-resources-plugin:2.6 or one of
  19. 使用V$SQL_PLAN视图获取曾经执行过的SQL语句执行计划
  20. OpenGl 绘制一个立方体

热门文章

  1. SQL Server读懂语句运行的统计信息 SET STATISTICS TIME IO PROFILE ON
  2. 细细品味Storm_Storm简介及安装
  3. PRML读书会第十二章 Continuous Latent Variables(PCA,Principal Component Analysis,PPCA,核PCA,Autoencoder,非线性流形)
  4. github上最全的资源教程-前端涉及的所有知识体系
  5. Linux进程间通信之信号量
  6. PHP中JSON的跨域调用
  7. IT人员如何保护视力
  8. 关于最近折腾的ubuntu12.10
  9. 【JavaEE企业应用学习记录】验证配置
  10. android 资讯阅读器(二)