【问题标题】:Push notifications from iOS to Android not working将通知从 iOS 推送到 Android 不起作用
【发布时间】:2015-08-11 15:42:23
【问题描述】:

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

我可以:

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);
}];

【问题讨论】:

  • 我没有 QB 的实际经验,但我会检查我的设备的 udid。可能一个或多个用户推送 ID 已被撤销,这就是它无法发送/接收的原因。欲了解更多信息:check this answer.

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


【解决方案1】:

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

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

【讨论】:

    【解决方案2】:

    你不能使用 sendPush:toUsers:successBlock:errorBlock: 方法。 获取您的 QBMPushMessage *message 变量并使用此 sn-p。

    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) {
    
    }];
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2020-07-13
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多