将通知从iOS推送到Android不工作

将通知从iOS推送到Android不工作,android,ios,push-notification,apple-push-notifications,quickblox,Android,Ios,Push Notification,Apple Push Notifications,Quickblox,我正在尝试为使用quickblox的应用程序设置推送通知。 我已经上传了正确的iOS证书和Google密钥 我可以: 从iOS发送到iOS 从Android发送到Android 从Android发送到iOS 但当我尝试从iOS向android发送时,SDK出现了一个错误: “没有收件人。至少应该有一个用户订阅APNS(Apple 推送(通过SDK或REST API)“] 这很奇怪,因为我试图将消息发送到GCM设备,错误显示没有APNS设备 我如何解决这个问题?从iOS到Android可以中断哪些

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

我可以:

iOS
发送到
iOS

Android
发送到
Android

Android
发送到
iOS

但当我尝试从iOS向android发送时,SDK出现了一个错误:

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

这很奇怪,因为我试图将消息发送到
GCM设备
,错误显示没有
APNS设备

我如何解决这个问题?从
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);
}];

显然,我们无意中使用了一种特定的方法,只将推送通知从iOS发送到iOS


在我们使用了一个通用的QBEvent之后,它被修复了

显然,我们意外地使用了一个特定的方法,只从iOS向iOS发送推送通知


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

您不能使用sendPush:toUsers:successBlock:errorBlock:method。 使用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) {

}];
QBMEvent*event=[QBMEvent];
event.notificationType=QBMNotificationTypePush;
event.usersIDs=用户;
event.type=QBMEventTypeOneShot;
n错误*错误=nil;
NSData*sendData=[NSJSONSerialization dataWithJSONObject:message.payloadDict选项:NSJSONWriting预打印错误:&error];
NSString*jsonString=[[NSString alloc]initWithData:sendData编码:NSUTF8StringEncoding];
如果(错误){
//错误处理
}
event.message=jsonString;
[QBRequest createEvent:event successBlock:^(QBResponse*\u非空响应,NSArray*\u可空事件){
}errorBlock:^(QBResponse*_非空响应){
}];

您不能使用sendPush:toUsers:successBlock:errorBlock:method。 使用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) {

}];
QBMEvent*event=[QBMEvent];
event.notificationType=QBMNotificationTypePush;
event.usersIDs=用户;
event.type=QBMEventTypeOneShot;
n错误*错误=nil;
NSData*sendData=[NSJSONSerialization dataWithJSONObject:message.payloadDict选项:NSJSONWriting预打印错误:&error];
NSString*jsonString=[[NSString alloc]initWithData:sendData编码:NSUTF8StringEncoding];
如果(错误){
//错误处理
}
event.message=jsonString;
[QBRequest createEvent:event successBlock:^(QBResponse*\u非空响应,NSArray*\u可空事件){
}errorBlock:^(QBResponse*_非空响应){
}];

我没有使用QB的实际经验,但我会检查我设备的udid。可能一个或多个用户推送id被撤销,这就是为什么无法发送/接收推送id的原因。更多信息:。我没有QB的实际经验,但我会检查我设备的udid。可能一个或多个用户推送id被撤销,这就是为什么无法发送/接收推送id的原因。有关详细信息:。