推送从iOS到Android的通知不起作用

时间:2015-08-11 15:42:24

标签: android ios push-notification apple-push-notifications quickblox

我正在尝试为使用quickblox的应用设置推送通知。 我已经上传了正确的iOS证书和Google Key,

我可以:

iOS发送到iOS

Android发送到Android

Android发送到iOS

但是当我尝试从iOS发送到android时,我得到SDK的错误:

  

“没有收件人。至少应该为一个用户订阅APNS(Apple   推送)(通过SDK或REST API)“]

这很奇怪,因为我正在尝试向GCM device发送消息,错误显示没有APNS device

我该如何解决这个问题?什么可以中断从iOS推送到Android

这就是我发送推送的方式

QBMPushMessage *pushMessage = [QBMPushMessage new];
pushMessage.alertBody = pushText;

NSMutableDictionary *additionalParams = [NSMutableDictionary new];
[additionalParams setObject:@1 forKey:@"isFromChat"];
if(dialogId){
    [additionalParams setObject:dialogId forKey:@"dialogId"];
}

[additionalParams setObject:messageText forKey:@"messageText"];


pushMessage.additionalInfo = additionalParams;

[QBRequest sendPush:pushMessage toUsers:recipientID successBlock:^(QBResponse *response, QBMEvent *event) {

    NSLog(@"Push was sent successfully to: %@", recipientID);

} errorBlock:^(QBError *error) {
    NSLog(@"Push Error: %@", error);
}];

2 个答案:

答案 0 :(得分:0)

显然,我们不小心使用了一种只从iOS发送推送通知的特定方法。

在我们使用通用QBEvent后,它已被修复

答案 1 :(得分:0)

你不能使用sendPush:toUsers:successBlock:errorBlock:方法。 获取您的QBMPushMessage *消息变量并使用此代码段。

QBMEvent *event = [QBMEvent event];
event.notificationType = QBMNotificationTypePush;
event.usersIDs = users;
event.type = QBMEventTypeOneShot;

NSError *error = nil;
NSData *sendData = [NSJSONSerialization dataWithJSONObject:message.payloadDict options:NSJSONWritingPrettyPrinted error:&error];
NSString *jsonString = [[NSString alloc] initWithData:sendData encoding:NSUTF8StringEncoding];

if (error) {
    //error handling
}

event.message = jsonString;

[QBRequest createEvent:event successBlock:^(QBResponse * _Nonnull response, NSArray<QBMEvent *> * _Nullable events) {

} errorBlock:^(QBResponse * _Nonnull response) {

}];