iOS推送"/>
百度 iOS推送
概述推送模块(FrontiaPush)允许开发者连接百度Push服务,然后向同个设备上的其他应用、或者其他设备上的应用推送自定义消息和通知。(去下载SDK)
通过:
FrontiaPush *push = [Fronia getPush];
可以获得推送模块的实例。
应用、云推送和APNs的关系
push%2Fpush_ios_help_1c.png
对应上图的流程标号,各个过程解释如下:
1 - 初始化应用推送证书
2 - 应用运行在iOS设备上,向云推送Server做绑定操作
3 - 给云推送服务发送请求,向指定iOS设备推送消息(广播或组播不需要user id)
4 - 云推送服务器用应用的推送证书和APNs Server建立连接,并向指定设备的DeviceToken推送消息
5 - APNs向iOS设备推送消息
需要的资源
应用的APNs推送证书
开发模式和生产模式
iOS应用的开发版和发布版所使用的APNs推送服务器是不同的,用于签名的APNs证书也分开发版和发布版,而且不同版本的应用在设备上获取的device token也不同。
云推送采取的策略是,推送消息时,对开发版和发布版使用不同的域名来进行区分。
发布版域名:
开发版域名:
在使用SDK推送时,请注意配置您的推送Host为您需要的域名。如:PHP SDK默认用的是发布版域名。 当要进行开发版推送时,请先设置域名:
$channel = new Channel ( $apiKey, $secretKey ) ;
$channel->setHost(Channel::HOST_IOS_DEV);
iOS推送在这种开发模式下,可能造成风险,请务必注意: 如果您的应用已经发布,且使用了发布版域名进行正常的推送。而工程师很可能还需要进行应用的开发和调试,因此切换到了开发版域名。如果切换不仔细,配置的是发布版域名,而误认为是开发状态,进行调试消息的广播推送,将会影响您的用户。
因此,为尽量减少出错,我们建议您使用如下开发模式:在百度开发者中心申请新的AppId(apiKey),在开发工程中使用新的AppId的配置信息(apiKey和secretKey)进行绑定和推送。应用升级发布时,再将App配置信息更改为发布版本。
APNs证书准备
这里假设您的Mac已经具备iOS应用开发以及APNs开发的环境。如果未具备,请百度之。
1. p12证书导出
在钥匙串访问中选中推送证书,导出为个人信息交换文件(.p12格式)。
push%2Fpush_ios_help_2a.png
选择文件格式、文件名和保存路径。
push%2Fpush_ios_help_3a.png
输入导出密码。
push%2Fpush_ios_help_4.png
2. pem证书生成
用p12证书文件转换成pem证书文件。在终端里运行以下命令转换:
openssl pkcs12 -in MyApnsCert.p12 -out MyApnsCert.pem -nodes
提示输入密码,就是p12的导出密码。
API列表
注册 device token
功能
注册device token。
方法
+registerDeviceToken:
请求参数
参数名称 类型 描述
deviceToken NSData 从UIApplication的didRegisterForRemoteNotificationsWithDeviceToken回调函数获得该值。
返回参数
类型 描述
示例
FrontiaPush *push = [Frontia getPush];
[push deviceToken:yourDeviceToken];
设置授权token
功能
设置应用的accessToken。
该方法应该在调用bindChannel之前被执行。如果access token发生了变化,bindChannel需要被重新执行。
方法
+setAccessToken:
请求参数
参数名称 类型 描述
token NSString 应用的access token。
返回参数
类型 描述
示例
FrontiaPush *push = [Frontia getPush];
[push setAccessToken:yourDeviceToken];//设置access token
[push bindChannel:onSuccess failureResult:onFail];//绑定
设置channel启动选项
功能
设置channel的启动选项。
方法
+setupChannel:
请求参数
参数名称 类型 描述
launchOptions NSDictionary
返回参数
类型 描述
示例
FrontiaPush *push = [Frontia getPush];
[push setupChannel:yourOptions];//设置推送的选项。
绑定
功能
连接云推送服务。
方法
-bindChannel:failureResult:
请求参数
参数名称 类型 描述
bindResult FrontiaPushBindCallback 连接成功时的回调函数。返回百度推送服务返回的app ID、 user ID和Channel ID。
failureResult FrontiaPushActionFailureCallback 连接失败时的回调函数。包含错误码和错误原因。
返回参数
类型 描述
示例
FrontiaPush *push = [Frontia getPush];
[push bindChannel:^(NSString *appId, NSString *userId, NSString *channelId) {
NSString *message = [[NSString alloc] initWithFormat:@"appid:%@ userid:%@ channelID:%@", appId, userId, channelId];
self.appidText.text = appId;
self.useridText.text = userId;
self.channelidText.text = channelId;
} failureResult:^(NSString *action, int errorCode, NSString *errorMessage) {
NSString *message = [[NSString alloc] initWithFormat:@"string is %@ error code : %d error message %@", action, errorCode, errorMessage];
}];
解除绑定
功能
断开云推送服务。
方法
--unbindChannel:failureResult:
请求参数
参数名称 类型 描述
unbindResult FrontiaPushUnbindCallback 断开成功时的回调函数,无任何参数返回。
failureResult FrontiaPushActionFailureCallback 断开失败时的回调函数。包含错误码和错误原因。
返回参数
类型 描述
示例
FrontiaPush *push = [Frontia getPush];
[push unbindChannel:^() {
//断开成功
} failureResult:^(NSString *action, int errorCode, NSString *errorMessage) {
NSString *message = [[NSString alloc] initWithFormat:@"string is %@ error code : %d error message %@", action, errorCode, errorMessage];
}];
设置标签
功能
向云推送服务注册一个标签。
方法
-setTag:tagOpResult:failureResult:
请求参数
参数名称 类型 描述
tag NSString 标签名
tagOpResult FrontiaPushTagOperationCallback 断开成功时的回调函数,无任何参数返回。
failureResult FrontiaPushActionFailureCallback 断开失败时的回调函数。包含错误码和错误原因。
返回参数
类型 描述
示例
FrontiaPush *push = [Frontia getPush];
[push setTag:@"tag_group1"
tagOpResult:^(int count, NSArray *failureTag) {
NSString *message = [[NSString alloc] initWithFormat:@"set tag success result: %d with failure tags %@", count, failureTag];
}
failureResult:^(NSString *action, int errorCode, NSString *errorMessage) {
NSString *message = [[NSString alloc] initWithFormat:@"set tag failed with %@ error code : %d error message %@", action, errorCode, errorMessage];
}];
设置多个标签
功能
向云推送服务批量注册标签。
方法
-setTags:tagOpResult:failureResult:
请求参数
参数名称 类型 描述
tags NSArray 标签名的数组
tagOpResult FrontiaPushTagOperationCallback 注册成功时的回调函数。
failureResult FrontiaPushActionFailureCallback 注册失败时的回调函数。包含错误码和错误原因。
返回参数
类型 描述
示例
FrontiaPush *push = [Frontia getPush];
NSArray *tags = @[@"education", @"IT", @"textbook"];
[push setTags:tags
tagOpResult:^(int count, NSArray *failureTag) {
NSString *message = [[NSString alloc] initWithFormat:@"set tag success result: %d with failure tags %@", count, failureTag];
}
failureResult:^(NSString *action, int errorCode, NSString *errorMessage) {
NSString *message = [[NSString alloc] initWithFormat:@"set tag failed with %@ error code : %d error message %@", action, errorCode, errorMessage];
}];
删除多个标签
功能
向云推送服务批量注销标签。
方法
-delTags:tagOpResult:failureResult:
请求参数
参数名称 类型 描述
tags NSArray 标签名的数组
tagOpResult FrontiaPushTagOperationCallback 注销成功时的回调函数。
failureResult FrontiaPushActionFailureCallback 注销失败时的回调函数。包含错误码和错误原因。
返回参数
类型 描述
示例
FrontiaPush *push = [Frontia getPush];
NSArray *tags = @[@"education", @"textbook"];//假定应用已经注册过这两个标签
[push delTags:tags
tagOpResult:^(int count, NSArray *failureTag) {
NSString *message = [[NSString alloc] initWithFormat:@"delete tags success result: %d with failure tags %@", count, failureTag];
}
failureResult:^(NSString *action, int errorCode, NSString *errorMessage) {
NSString *message = [[NSString alloc] initWithFormat:@"delete tags failed with %@ error code : %d error message %@", action, errorCode, errorMessage];
}];
删除标签
功能
向云推送服务注销一个标签。
方法
-delTag:tagOpResult:failureResult:
请求参数
参数名称 类型 描述
tag NSString 标签名
tagOpResult FrontiaPushTagOperationCallback 注销成功时的回调函数。
failureResult FrontiaPushActionFailureCallback 注销失败时的回调函数。包含错误码和错误原因。
返回参数
类型 描述
示例
FrontiaPush *push = [Frontia getPush];
[push delTags:@"education" //假定应用已经注册过这个标签
tagOpResult:^(int count, NSArray *failureTag) {
NSString *message = [[NSString alloc] initWithFormat:@"delete tags success result: %d with failure tags %@", count, failureTag];
}
failureResult:^(NSString *action, int errorCode, NSString *errorMessage) {
NSString *message = [[NSString alloc] initWithFormat:@"delete tags failed with %@ error code : %d error message %@", action, errorCode, errorMessage];
}];
向指定设备指定应用推送消息
功能
向指定设备上的一个应用推送消息。设备由channelId唯一确定;设备上的应用由uid唯一确定。 uid和channeld在应用通过bindChannel:failureResult连接推送服务后,由后者返回。
方法
-pushMessage:channelId:pushMessage:sendMessageResult:failureResult:
请求参数
参数名称 类型 描述
uid NSString 连接推送服务获得的uid。
channelId NSString 连接推送服务获得的channelId。
pushMessage FrontiaPushMessage 推送的消息。
sendMessageResult FrontiaPushSendMessageCallback 推送成功时的回调函数。
failureResult FrontiaPushActionFailureCallback 推送失败时的回调函数。包含错误码和错误原因。
返回参数
类型 描述
示例
FrontiaPush *push = [Frontia getPush];
/*! 创建通知消息
*/
FrontiaPushMessageContent *content = [FrontiaPushMessageContent new];//创建通知的内容
content.title = @"this is a title";
content.description = @"come from mobile";
FrontiaPushMessage *message = [[FrontiaPushMessage alloc] init];//创建消息
message.deployStatus = FrontiaPushMessageDeployType_DEV;
message.msgKeys = @"just_a_test";
message.messageContent = content;
[message setNotification:content];//将该消息设置成通知
/*! end */
/*! 向一个设备上(由app1ChannelId唯一确定)的app1推送消息 */
[push pushMessage:app1Uid
channelId:app1ChannelId
pushMessage:message
sendMessageResult:^(NSString* pushId) {
NSString *message = [[NSString alloc] initWithFormat:@"push message success result: %@", pushId];
}
failureResult:^(NSString *action, int errorCode, NSString *errorMessage) {
NSString *message = [[NSString alloc] initWithFormat:@"push message failed with %@ error code : %d error message %@", action, errorCode, errorMessage];
}];
向应用推送消息:
功能
向所有设备上的一个应用推送消息。应用由uid唯一确定。 uid在应用通过bindChannel:failureResult连接推送服务后,由后者返回。
方法
-pushMessageToPerson:pushMessage:sendMessageResult:failureResult:
请求参数
参数名称 类型 描述
uid NSString 连接推送服务获得的uid。
pushMessage FrontiaPushMessage 推送的消息。
sendMessageResult FrontiaPushSendMessageCallback 推送成功时的回调函数。
failureResult FrontiaPushActionFailureCallback 推送失败时的回调函数。包含错误码和错误原因。
返回参数
类型 描述
示例
FrontiaPush *push = [Frontia getPush];
/*! 创建通知消息
*/
FrontiaPushMessageContent *content = [FrontiaPushMessageContent new];//创建通知的内容
content.title = @"this is a title";
content.description = @"come from mobile";
FrontiaPushMessage *message = [[FrontiaPushMessage alloc] init];//创建消息
message.deployStatus = FrontiaPushMessageDeployType_DEV;
message.msgKeys = @"just_a_test";
message.messageContent = content;
[message setNotification:content];//将该消息设置成通知
/*! end */
/*! 向所有设备上的app1推送消息 */
[push pushMessageToPerson:app1Uid
pushMessage:message
sendMessageResult:^(NSString* pushId) {
NSString *message = [[NSString alloc] initWithFormat:@"push message success result: %@", pushId];
}
failureResult:^(NSString *action, int errorCode, NSString *errorMessage) {
NSString *message = [[NSString alloc] initWithFormat:@"push message failed with %@ error code : %d error message %@", action, errorCode, errorMessage];
}];
向指定设备推送定时消息
功能
向指定设备上的一个应用推送定时消息。设备由channelId唯一确定;设备上的应用由uid唯一确定。 uid和channeld在应用通过bindChannel:failureResult连接推送服务后,由后者返回。
方法
-pushMessage:channelId:pushMessage:trigger:sendMessageResult:failureResult:
请求参数
参数名称 类型 描述
uid NSString 连接推送服务获得的uid。
channelId NSString 连接推送服务获得的channelId。
pushMessage FrontiaPushMessage 推送的消息。
trigger FrontiaTimeTrigger 定时器。
sendMessageResult FrontiaPushSendMessageCallback 推送成功时的回调函数。
failureResult FrontiaPushActionFailureCallback 推送失败时的回调函数。包含错误码和错误原因。
返回参数
类型 描述
示例
FrontiaPush *push = [Frontia getPush];
/*! 创建通知消息
*/
FrontiaPushMessageContent *content = [FrontiaPushMessageContent new];//创建通知的内容
content.title = @"this is a title";
content.description = @"come from mobile";
FrontiaPushMessage *message = [[FrontiaPushMessage alloc] init];//创建消息
message.deployStatus = FrontiaPushMessageDeployType_DEV;
message.msgKeys = @"just_a_test";
message.messageContent = content;
[message setNotification:content];//将该消息设置成通知
/*! end */
/!* 创建定时器 */
FrontiaTimeTrigger *trigger = [FrontiaTimeTrigger new];
NSString* timeStr = @"2013-09-26 15:44";
NSDateFormatter *formatter = [NSDateFormatter new];
[formatter setDateStyle:NSDateFormatterMediumStyle];
[formatter setTimeStyle:NSDateFormatterNoStyle];
[formatter setDateFormat:@"yyyy-MM-dd HH:mm"];
NSTimeZone* timeZone = [NSTimeZone localTimeZone /*timeZoneWithName:@"Asia/Beijing"*/];
[formatter setTimeZone:timeZone];
trigger.triggerDate = [formatter dateFromString:timeStr];
/*! end */
/*! 向指定设备上的app1推送定时消息 */
[push pushMessage:app1Uid
channelId:app1ChannelId
pushMessage:message
trigger:trigger
sendMessageResult:^(NSString* pushId) {
NSString *message = [[NSString alloc] initWithFormat:@"push message success result: %@", pushId];
}
failureResult:^(NSString *action, int errorCode, NSString *errorMessage) {
NSString *message = [[NSString alloc] initWithFormat:@"push message failed with %@ error code : %d error message %@", action, errorCode, errorMessage];
}];
向用户推送消息
功能
向所有设备上的一个应用推送定时消息。设备上的应用由uid唯一确定。 uid通过bindChannel:failureResult连接推送服务后,由后者返回。
方法
-pushMessageToPerson:pushMessage:trigger:sendMessageResult:failureResult:
请求参数
参数名称 类型 描述
uid NSString 连接推送服务获得的uid。
pushMessage FrontiaPushMessage 推送的消息。
trigger FrontiaTimeTrigger 定时器。
sendMessageResult FrontiaPushSendMessageCallback 推送成功时的回调函数。
failureResult FrontiaPushActionFailureCallback 推送失败时的回调函数。包含错误码和错误原因。
返回参数
类型 描述
示例
FrontiaPush *push = [Frontia getPush];
/* 创建通知消息
*/
FrontiaPushMessageContent *content = [FrontiaPushMessageContent new];//创建通知的内容
content.title = @"this is a title";
content.description = @"come from mobile";
FrontiaPushMessage *message = [[FrontiaPushMessage alloc] init];//创建消息
message.deployStatus = FrontiaPushMessageDeployType_DEV;
message.msgKeys = @"just_a_test";
message.messageContent = content;
[message setNotification:content];//将该消息设置成通知
/* end */
/* 创建定时器 */
FrontiaTimeTrigger *trigger = [FrontiaTimeTrigger new];
NSString* timeStr = @"2013-09-26 15:44";
NSDateFormatter *formatter = [NSDateFormatter new];
[formatter setDateStyle:NSDateFormatterMediumStyle];
[formatter setTimeStyle:NSDateFormatterNoStyle];
[formatter setDateFormat:@"yyyy-MM-dd HH:mm"];
NSTimeZone* timeZone = [NSTimeZone localTimeZone /*timeZoneWithName:@"Asia/Beijing"*/];
[formatter setTimeZone:timeZone];
trigger.triggerDate = [formatter dateFromString:timeStr];
/* end */
/* 向指定设备上的app1推送定时消息 */
[push pushMessage:app1Uid
pushMessage:message
trigger:trigger
sendMessageResult:^(NSString* pushId) {
NSString *message = [[NSString alloc] initWithFormat:@"push message success result: %@", pushId];
}
failureResult:^(NSString *action, int errorCode, NSString *errorMessage) {
NSString *message = [[NSString alloc] initWithFormat:@"push message failed with %@ error code : %d error message %@", action, errorCode, errorMessage];
}];
向给定标签推送消息
功能
向给定标签推送消息。所有注册了该标签的应用都能收到。
方法
-pushMessage:pushMessage:sendMessageResult:failureResult:
请求参数
参数名称 类型 描述
tag NSString 标签。
pushMessage FrontiaPushMessage 推送的消息。
sendMessageResult FrontiaPushSendMessageCallback 推送成功时的回调函数。
failureResult FrontiaPushActionFailureCallback 推送失败时的回调函数。包含错误码和错误原因。
返回参数
类型 描述
示例
FrontiaPush *push = [Frontia getPush];
/*! 创建通知消息
*/
FrontiaPushMessageContent *content = [FrontiaPushMessageContent new];//创建通知的内容
content.title = @"this is a title";
content.description = @"come from mobile";
FrontiaPushMessage *message = [[FrontiaPushMessage alloc] init];//创建消息
message.deployStatus = FrontiaPushMessageDeployType_DEV;
message.msgKeys = @"just_a_test";
message.messageContent = content;
[message setNotification:content];//将该消息设置成通知
/*! end */
/*! 向标签group1推送定时消息 */
[push pushMessage:@"group1"
pushMessage:message
sendMessageResult:^(NSString* pushId) {
NSString *message = [[NSString alloc] initWithFormat:@"push message success result: %@", pushId];
}
failureResult:^(NSString *action, int errorCode, NSString *errorMessage) {
NSString *message = [[NSString alloc] initWithFormat:@"push message failed with %@ error code : %d error message %@", action, errorCode, errorMessage];
}];
向给定标签推送定时消息
功能
向给定标签推送定时消息。所有注册了该标签的应用都能收到。
方法
-pushMessage:pushMessage:trigger:sendMessageResult:failureResult:
请求参数
参数名称 类型 描述
tag NSString 标签。
pushMessage FrontiaPushMessage 推送的消息。
trigger FrontiaTimeTrigger 定时器。
sendMessageResult FrontiaPushSendMessageCallback 推送成功时的回调函数。
failureResult FrontiaPushActionFailureCallback 推送失败时的回调函数。包含错误码和错误原因。
返回参数
类型 描述
示例
FrontiaPush *push = [Frontia getPush];
/*! 创建通知消息
*/
FrontiaPushMessageContent *content = [FrontiaPushMessageContent new];//创建通知的内容
content.title = @"this is a title";
content.description = @"come from mobile";
FrontiaPushMessage *message = [[FrontiaPushMessage alloc] init];//创建消息
message.deployStatus = FrontiaPushMessageDeployType_DEV;
message.msgKeys = @"just_a_test";
message.messageContent = content;
[message setNotification:content];//将该消息设置成通知
/*! end */
/!* 创建定时器 */
FrontiaTimeTrigger *trigger = [FrontiaTimeTrigger new];
NSString* timeStr = @"2013-09-26 15:44";
NSDateFormatter *formatter = [NSDateFormatter new];
[formatter setDateStyle:NSDateFormatterMediumStyle];
[formatter setTimeStyle:NSDateFormatterNoStyle];
[formatter setDateFormat:@"yyyy-MM-dd HH:mm"];
NSTimeZone* timeZone = [NSTimeZone localTimeZone /*timeZoneWithName:@"Asia/Beijing"*/];
[formatter setTimeZone:timeZone];
trigger.triggerDate = [formatter dateFromString:timeStr];
/*! end */
/*! 向标签group1推送定时消息 */
[push pushMessage:@"group1"
pushMessage:message
trigger:trigger
sendMessageResult:^(NSString* pushId) {
NSString *message = [[NSString alloc] initWithFormat:@"push message success result: %@", pushId];
}
failureResult:^(NSString *action, int errorCode, NSString *errorMessage) {
NSString *message = [[NSString alloc] initWithFormat:@"push message failed with %@ error code : %d error message %@", action, errorCode, errorMessage];
}];
推送广播消息
功能
向所有连接了推送服务的应用推送消息。
方法
-pushMessage:sendMessageResult:failureResult:
请求参数
参数名称 类型 描述
pushMessage FrontiaPushMessage 推送的消息。
sendMessageResult FrontiaPushSendMessageCallback 推送成功时的回调函数。
failureResult FrontiaPushActionFailureCallback 推送失败时的回调函数。包含错误码和错误原因。
返回参数
类型 描述
示例
FrontiaPush *push = [Frontia getPush];
/*! 创建通知消息
*/
FrontiaPushMessageContent *content = [FrontiaPushMessageContent new];//创建通知的内容
content.title = @"this is a title";
content.description = @"come from mobile";
FrontiaPushMessage *message = [[FrontiaPushMessage alloc] init];//创建消息
message.deployStatus = FrontiaPushMessageDeployType_DEV;
message.msgKeys = @"just_a_test";
message.messageContent = content;
[message setNotification:content];//将该消息设置成通知
/*! end */
/*! 向标签group1推送定时消息 */
[push pushMessage:message
sendMessageResult:^(NSString* pushId) {
NSString *message = [[NSString alloc] initWithFormat:@"push message success result: %@", pushId];
}
failureResult:^(NSString *action, int errorCode, NSString *errorMessage) {
NSString *message = [[NSString alloc] initWithFormat:@"push message failed with %@ error code : %d error message %@", action, errorCode, errorMessage];
}];
推送定时广播消息
功能
向所有连接了推送服务的应用推送定时消息。
方法
-pushMessage:trigger:sendMessageResult:failureResult:
请求参数
参数名称 类型 描述
pushMessage FrontiaPushMessage 推送的消息。
trigger FrontiaTimeTrigger 定时器。
sendMessageResult FrontiaPushSendMessageCallback 推送成功时的回调函数。
failureResult FrontiaPushActionFailureCallback 推送失败时的回调函数。包含错误码和错误原因。
返回参数
类型 描述
示例
FrontiaPush *push = [Frontia getPush];
/*! 创建通知消息
*/
FrontiaPushMessageContent *content = [FrontiaPushMessageContent new];//创建通知的内容
content.title = @"this is a title";
content.description = @"come from mobile";
FrontiaPushMessage *message = [[FrontiaPushMessage alloc] init];//创建消息
message.deployStatus = FrontiaPushMessageDeployType_DEV;
message.msgKeys = @"just_a_test";
message.messageContent = content;
[message setNotification:content];//将该消息设置成通知
/*! end */
/!* 创建定时器 */
FrontiaTimeTrigger *trigger = [FrontiaTimeTrigger new];
NSString* timeStr = @"2013-09-26 15:44";
NSDateFormatter *formatter = [NSDateFormatter new];
[formatter setDateStyle:NSDateFormatterMediumStyle];
[formatter setTimeStyle:NSDateFormatterNoStyle];
[formatter setDateFormat:@"yyyy-MM-dd HH:mm"];
NSTimeZone* timeZone = [NSTimeZone localTimeZone /*timeZoneWithName:@"Asia/Beijing"*/];
[formatter setTimeZone:timeZone];
trigger.triggerDate = [formatter dateFromString:timeStr];
/*! end */
/*! 向标签group1推送定时消息 */
[push pushMessage:message
trigger:trigger
sendMessageResult:^(NSString* pushId) {
NSString *message = [[NSString alloc] initWithFormat:@"push message success result: %@", pushId];
}
failureResult:^(NSString *action, int errorCode, NSString *errorMessage) {
NSString *message = [[NSString alloc] initWithFormat:@"push message failed with %@ error code : %d error message %@", action, errorCode, errorMessage];
}];
遍历定时消息
功能
查询满足查询条件的已推送消息。
方法
-listMessage:listMessageResult:failureResult:
请求参数
参数名称 类型 描述
query FrontiaQuery 查询条件。
listMessageResult FrontiaPushListMessageCallback 查询成功时的回调函数。
failureResult FrontiaPushActionFailureCallback 查询失败时的回调函数。包含错误码和错误原因。
返回参数
类型 描述
示例
FrontiaPush *push = [Frontia getPush];
FrontiaQuery * query = [FrontiaQuery new];//查询所有已经推送的消息
[push listMessage:query
listMessageResult:^(NSArray *pushMessages) {
NSString *message = [[NSString alloc] initWithFormat:@"list message success result: %d", pushMessages.count];
}
failureResult:^(NSString *action, int errorCode, NSString *errorMessage) {
NSString *message = [[NSString alloc] initWithFormat:@"list message failed with %@ error code : %d error message %@", action, errorCode, errorMessage];
}];
获取推送消息详细信息
功能
获得指定id的定时推送消息。
方法
-fetchMessage:fetchMessageResult:failureResult:
请求参数
参数名称 类型 描述
id NSString 已推送的消息的id。该id在该消息推送成功后返回。
fetchMessageResult FrontiaPushFetchMessageCallback 获取成功时的回调函数。
failureResult FrontiaPushActionFailureCallback 获取失败时的回调函数。包含错误码和错误原因。
返回参数
类型 描述
示例
FrontiaPush *push = [Frontia getPush];
NSString *id = @"51ebcc74ddb205e505000006"; //假定该id是已经推送成功的消息
[push fetchMessage:id
fetchMessageResult:^(FrontiaPushTimerMessage *fetchMessage) {
NSString *message = [[NSString alloc] initWithFormat:@"fetch message success result: %@", fetchMessage.messageContent.description];
}
failureResult:^(NSString *action, int errorCode, NSString *errorMessage) {
NSString *message = [[NSString alloc] initWithFormat:@"fetch message failed with %@ error code : %d error message %@", action, errorCode, errorMessage];
}];
修改推送给指定设备的定时消息
功能
修改推送给指定设备上的指定应用的定时消息。
方法
-replaceMessage:uid:channelId:trigger:pushMessage:modifyMessageResult:failureResult:
请求参数
参数名称 类型 描述
id NSString 原定时推送消息的id。
uid NSString 应用的uid。该uid在应用连接推送服务后,由后者返回。
channelId NSString 设备的channelId。该channelId在应用连接推送服务后,由后者返回。
trigger FrontiaTimeTrigger 定时器。
pushMessage FrontiaPushMessage 消息内容。
modifyMessageResult FrontiaPushSendMessageCallback 修改成功后的回调函数。
failureResult FrontiaPushActionFailureCallback 修改失败后的回调函数。包含错误码和错误原因。
返回参数
类型 描述
示例
FrontiaPush *push = [Frontia getPush];
NSString *id = @"51ebcc74ddb205e505000006"; //假定该id是已经推送成功的定时推送消息
/*! 创建新的推送消息 */
FrontiaPushMessageContent *content = [[FrontiaPushMessageContent alloc] init];
content.title = @"this is a title";
content.description = @"come from mobile";
FrontiaPushMessage *message = [[FrontiaPushMessage alloc] init];
message.deployStatus = FrontiaPushMessageDeployType_DEV;
message.msgKeys = @"just_a_test";
message.messageContent = content;
[message setNotification:content];
/*! end */
/*! 新的定时器 */
FrontiaTimeTrigger *trigger = [[FrontiaTimeTrigger alloc] init];
NSString* timeStr = @"2013-08-24 15:44";
NSDateFormatter *formatter = [[NSDateFormatter alloc] init];
[formatter setDateStyle:NSDateFormatterMediumStyle];
[formatter setTimeStyle:NSDateFormatterNoStyle];
[formatter setDateFormat:@"yyyy-MM-dd HH:mm"];
NSTimeZone* timeZone = [NSTimeZone localTimeZone /*timeZoneWithName:@"Asia/Beijing"*/];
[formatter setTimeZone:timeZone];
trigger.triggerDate = [formatter dateFromString:timeStr];
/*! end */
[push replaceMessage:id//原推送消息的id。
uid:app1Uid //新应用的uid
channelId:app1ChannelId //新应用的channelId
trigger:trigger //新定时器
pushMessage:message //新消息
modifyMessageResult:^(NSString *pushId) {//修改成功后,返回新的定时推送消息的id
NSString *message = [[NSString alloc] initWithFormat:@"replace message result: %@", pushId];
}
failureResult:^(NSString *action, int errorCode, NSString *errorMessage) {
NSString *message = [[NSString alloc] initWithFormat:@"replace message failed with %@ error code : %d error message %@", action, errorCode, errorMessage];
}];
修改推送给指定标签的定时消息
功能
修改推送给指定标签的定时消息。
方法
-replaceMessage:tag:trigger:pushMessage:modifyMessageResult:failureResult:
请求参数
参数名称 类型 描述
id NSString 原定时推送消息的id。
tag NSString 标签。
trigger FrontiaTimeTrigger 定时器。
pushMessage FrontiaPushMessage 消息内容。
modifyMessageResult FrontiaPushSendMessageCallback 修改成功后的回调函数。
failureResult FrontiaPushActionFailureCallback 修改失败后的回调函数。包含错误码和错误原因。
返回参数
类型 描述
示例
FrontiaPush *push = [Frontia getPush];
NSString *id = @"51ebcc74ddb205e505000006"; //假定该id是已经推送成功的定时推送消息
/*! 创建新的推送消息 */
FrontiaPushMessageContent *content = [[FrontiaPushMessageContent alloc] init];
content.title = @"this is a title";
content.description = @"come from mobile";
FrontiaPushMessage *message = [[FrontiaPushMessage alloc] init];
message.deployStatus = FrontiaPushMessageDeployType_DEV;
message.msgKeys = @"just_a_test";
message.messageContent = content;
[message setNotification:content];
/*! end */
/*! 新的定时器 */
FrontiaTimeTrigger *trigger = [[FrontiaTimeTrigger alloc] init];
NSString* timeStr = @"2013-08-24 15:44";
NSDateFormatter *formatter = [[NSDateFormatter alloc] init];
[formatter setDateStyle:NSDateFormatterMediumStyle];
[formatter setTimeStyle:NSDateFormatterNoStyle];
[formatter setDateFormat:@"yyyy-MM-dd HH:mm"];
NSTimeZone* timeZone = [NSTimeZone localTimeZone /*timeZoneWithName:@"Asia/Beijing"*/];
[formatter setTimeZone:timeZone];
trigger.triggerDate = [formatter dateFromString:timeStr];
/*! end */
[push replaceMessage:id//原推送消息的id。
tag:@"newTag"//新标签
trigger:trigger //新定时器
pushMessage:message //新消息
modifyMessageResult:^(NSString *pushId) {//修改成功后,返回新的定时推送消息的id
NSString *message = [[NSString alloc] initWithFormat:@"replace message result: %@", pushId];
}
failureResult:^(NSString *action, int errorCode, NSString *errorMessage) {
NSString *message = [[NSString alloc] initWithFormat:@"replace message failed with %@ error code : %d error message %@", action, errorCode, errorMessage];
}];
修改广播的定时消息
功能
修改定时消息。
方法
-replaceMessage:trigger:pushMessage:modifyMessageResult:failureResult:
请求参数
参数名称 类型 描述
id NSString 原定时推送消息的id。
trigger FrontiaTimeTrigger 定时器。
pushMessage FrontiaPushMessage 消息内容。
modifyMessageResult FrontiaPushSendMessageCallback 修改成功后的回调函数。
failureResult FrontiaPushActionFailureCallback 修改失败后的回调函数。包含错误码和错误原因。
返回参数
类型 描述
示例
FrontiaPush *push = [Frontia getPush];
NSString *id = @"51ebcc74ddb205e505000006"; //假定该id是已经推送成功的定时推送消息
/*! 创建新的推送消息 */
FrontiaPushMessageContent *content = [[FrontiaPushMessageContent alloc] init];
content.title = @"this is a title";
content.description = @"come from mobile";
FrontiaPushMessage *message = [[FrontiaPushMessage alloc] init];
message.deployStatus = FrontiaPushMessageDeployType_DEV;
message.msgKeys = @"just_a_test";
message.messageContent = content;
[message setNotification:content];
/*! end */
/*! 新的定时器 */
FrontiaTimeTrigger *trigger = [[FrontiaTimeTrigger alloc] init];
NSString* timeStr = @"2013-08-24 15:44";
NSDateFormatter *formatter = [[NSDateFormatter alloc] init];
[formatter setDateStyle:NSDateFormatterMediumStyle];
[formatter setTimeStyle:NSDateFormatterNoStyle];
[formatter setDateFormat:@"yyyy-MM-dd HH:mm"];
NSTimeZone* timeZone = [NSTimeZone localTimeZone /*timeZoneWithName:@"Asia/Beijing"*/];
[formatter setTimeZone:timeZone];
trigger.triggerDate = [formatter dateFromString:timeStr];
/*! end */
[push replaceMessage:id//原推送消息的id。
trigger:trigger //新定时器
pushMessage:message //新消息
modifyMessageResult:^(NSString *pushId) {//修改成功后,返回新的定时推送消息的id
NSString *message = [[NSString alloc] initWithFormat:@"replace message result: %@", pushId];
}
failureResult:^(NSString *action, int errorCode, NSString *errorMessage) {
NSString *message = [[NSString alloc] initWithFormat:@"replace message failed with %@ error code : %d error message %@", action, errorCode, errorMessage];
}];
删除定时消息
功能
删除定时消息。
方法
-removeMessage:removeMessageResult:failureResult:
请求参数
参数名称 类型 描述
id NSString 原定时推送消息的id。
removeMessageResult FrontiaPushSendMessageCallback 删除成功后的回调函数。
failureResult FrontiaPushActionFailureCallback 删除失败后的回调函数。包含错误码和错误原因。
返回参数
类型 描述
示例
FrontiaPush *push = [Frontia getPush];
NSString *id = @"51ebcc74ddb205e505000006"; //假定该id是已经推送成功的定时推送消息
[push removeMessage:id
removeMessageResult:^(NSString *pushId) {
NSString *message = [[NSString alloc] initWithFormat:@"remove message result: %@", pushId];
}
failureResult:^(NSString *action, int errorCode, NSString *errorMessage) {
NSString *message = [[NSString alloc] initWithFormat:@"remove message failed with %@ error code : %d error message %@", action, errorCode, errorMessage];
}];
接收到推送消息后的回调函数
功能
接收到推送消息后的回调函数。
方法
-handleNotification:
请求参数
参数名称 类型 描述
info NSDictionary 推送消息的内容
返回参数
类型 描述
示例
FrontiaPush *push = [Frontia getPush];
- (void)application:(UIApplication *)application
didReceiveRemoteNotification:(NSDictionary *)userInfo { //应用收到推送消息
[application setApplicationIconBadgeNumber:1];
FrontiaPush *push = [Frontia getPush];
[push handleNotification:userInfo];//通知FrontiaPush该消息的内容,可允许Frontia对此进行分析和统计。
}
更多推荐
百度 iOS推送
发布评论