百度 iOS推送

编程入门 行业动态 更新时间:2024-10-24 21:30:30

百度 <a href=https://www.elefans.com/category/jswz/34/1770014.html style=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推送

本文发布于:2024-02-11 18:05:07,感谢您对本站的认可!
本文链接:https://www.elefans.com/category/jswz/34/1682469.html
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。
本文标签:iOS

发布评论

评论列表 (有 0 条评论)
草根站长

>www.elefans.com

编程频道|电子爱好者 - 技术资讯及电子产品介绍!