iOS应用第三方推送的添加
2024-08-26 01:53:37
现在的一些第三方的推送平台挺好用,主要是因为他们有类似微信公众平台一样的管理后台,简单易用,封装了很多开发者需要的推送功能。
下面以个推为例:
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];
}
具体请参考关于个推推送方式文档:
最新文章
- Android 基于Android的手机邮件收发(JavaMail)之三(邮件接收)
- 使用ycsb测试cassandra
- .net 4.0 自定义本地缓存策略的不同实现
- JavaScript:表单验证模型
- oracle创建用户赋予权限
- Cocos2dx坐标转换
- Effective C++ 笔记一 让自己习惯C++
- Java中的native方法
- ios学习之常见问题记录
- #define指令
- 深度学习框架Keras介绍及实战
- Nikto and whatweb
- java 根据Url下载对应的文件到指定位置,读txt文件获取url
- 【运维】虚拟机如何安装CentOS
- 软件工程M1/M2总结
- Actor模式初步入门
- (笔记)Linux内核中内存相关的操作函数
- Could not calculate build plan: Plugin org.apache.maven.plugins:maven-resources-plugin:2.6 or one of
- 使用V$SQL_PLAN视图获取曾经执行过的SQL语句执行计划
- OpenGl 绘制一个立方体
热门文章
- SQL Server读懂语句运行的统计信息 SET STATISTICS TIME IO PROFILE ON
- 细细品味Storm_Storm简介及安装
- PRML读书会第十二章 Continuous Latent Variables(PCA,Principal Component Analysis,PPCA,核PCA,Autoencoder,非线性流形)
- github上最全的资源教程-前端涉及的所有知识体系
- Linux进程间通信之信号量
- PHP中JSON的跨域调用
- IT人员如何保护视力
- 关于最近折腾的ubuntu12.10
- 【JavaEE企业应用学习记录】验证配置
- android 资讯阅读器(二)