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

下面以个推为例:

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(可选)

iOS应用第三方推送的添加的更多相关文章

  1. iOS APNs远程推送流程精简版

    1.去Apple Developer Center里创建应用的信息,指定APP ID(Bundle ID),配置里开启推送功能(Push Notifications). 后续步骤需要用到这个应用的包名 ...

  2. iOS - Push 通知推送

    1.UserNotifications 通知是 App 用来和用户交流的一种方式,特别是当 App 并没有在前台运行的时候.通知,正如它的名称所强调的,被用作向用户'通知'一个事件,或者仅仅向用户提示 ...

  3. iOS上简单推送通知(Push Notification)的实现

    iOS上简单推送通知(Push Notification)的实现 根据这篇很好的教程(http://www.raywenderlich.com/3443/apple-push-notification ...

  4. iOS 10 消息推送(UserNotifications)秘籍总结(二)

    背景 上一篇博客iOS 10 消息推送(UserNotifications)秘籍总结(一)发布后被 简书编辑推荐至首页,这着实让我受宠若惊啊.可是好事不长,后面发生了让我伤心欲绝的事,我的女朋友不要我 ...

  5. iOS 10 消息推送(UserNotifications)秘籍总结(一)

    前言 之前说会单独整理消息通知的内容,但是因为工(就)作(是)的(很)事(懒)没有更新文章,违背了自己的学习的初衷.因为互联网一定要有危机意识,说不定眼一睁,我们就out丢了饭碗. 图片来源网络.jp ...

  6. iOS开发 iOS10推送必看

    iOS10更新之后,推送也是做了一些小小的修改,下面我就给大家仔细说说.希望看完我的这篇文章,对大家有所帮助. 一.简单入门篇---看完就可以简单适配完了 相对简单的推送证书以及环境的问题,我就不在这 ...

  7. android推送-PHP(第三方推送:个推)

    在项目初期,就安卓推送功能怎么做,曾经参考过例如XMPP之类的推送方法.但苦于那些是些英文档案,又没太多时间研究,所以打算采用第三方推送(个推,极光推送等),后来在美图技术老大推荐下用采用个推. PS ...

  8. .net平台借助第三方推送服务在推送Android消息(极光推送)

    最近做的.net项目(Windows Service)需要向Android手机发送推送消息,真是有点困难,没有搞过就不停的搜文档,最后看到了一个开源项目PushSharp,可以在.net平台推送IOS ...

  9. Android第三方推送引擎比较

    所了解的第三方推送引擎有极光推送(JPush), 百度, 个推,腾讯信鸽等.根据了解,最专业的据说是极光推送,先看极光推送. 一.极光推送 https://www.jpush.cn/ 配置: 1.JP ...

随机推荐

  1. Spring Security笔记:使用数据库进行用户认证(form login using database)

    在前一节,学习了如何自定义登录页,但是用户名.密码仍然是配置在xml中的,这样显然太非主流,本节将学习如何把用户名/密码/角色存储在db中,通过db来实现用户认证 一.项目结构 与前面的示例相比,因为 ...

  2. React Native 中组件的生命周期

    概述 就像 Android 开发中的 View 一样,React Native(RN) 中的组件也有生命周期(Lifecycle).所谓生命周期,就是一个对象从开始生成到最后消亡所经历的状态,理解生命 ...

  3. java 客户端链接不上redis解决方案

    原文地址:http://blog.csdn.net/yingxiake/article/details/51472810 出现问题描述: 1.Could not get a resource from ...

  4. java并发:简单面试问题集锦

    多线程:Simultaneous Multithreading,简称SMT. 并行.并发 并行性(parallelism)指两个或两个以上的事件在同一时刻发生,在多道程序环境下,并行性使多个程序同一时 ...

  5. gocode+auto-complete搭建emacs的go语言自动补全功能

    上篇随笔记录了在emacs中使用go-mode和goflymake搭建了go语言的简单编程环境(推送门),今天来记录一下使用gocode+auto-complete配置emacs中go语言的自动补全功 ...

  6. GWT-Dev-Plugin(即google web toolkit developer plugin)for firefox的下载地址

    如果FireFox的版本为20,则对应google-web-toolkit的插件离线下载地址,不要用浏览器直接下载,用Flashget等客户端下载,超快. http://google-web-tool ...

  7. dnsunlocker解决

    环境:windows 10 中文企业版,firefox47, chrome51 安装了某个国外程序后,浏览器各种不正常,打开网页慢,或是无法打开,更严重的是会弹广告,各种广告. 然后在控制面板中卸载了 ...

  8. Congruence relation 同余关系

    https://en.wikipedia.org/wiki/Congruence_relation https://zh.wikipedia.org/wiki/%E5%90%8C%E9%A4%98%E ...

  9. mybatis generator使用总结

    一.mybatis项目的体系结构 百度mybaits,可以进入mybatis的github:https://github.com/mybatis. mybatis是一个大大的体系,它不是孤立的,它可以 ...

  10. IntelliJ idea的使用

    1.快捷键 2.插件集成 附录:参考资料