将通知从iOS推送到Android不工作
我正在尝试为使用quickblox的应用程序设置推送通知。 我已经上传了正确的iOS证书和Google密钥 我可以: 从将通知从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可以中断哪些
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的原因。有关详细信息:。