Quickblox“离线用户的自动推送通知”不起作用

Posted

技术标签:

【中文标题】Quickblox“离线用户的自动推送通知”不起作用【英文标题】:Quickblox 'automatic push notifications for offline user' not working 【发布时间】:2015-03-09 11:20:01 【问题描述】:

我有以下情况。 用户 A 在前台向用户 B 发送消息 - 这是有效的 当应用程序在后台时,从“消息”控制台向用户 B 发送推送通知 - 这是有效的

我想在应用处于后台时向用户 B 发送通知警报。我读到这是由 quickblox 自动完成的,但对我来说没有发生。

我已按照this link 上的说明进行操作

我在开发模式下使用“Starter”帐户。我们是否需要具有“服务器端历史记录”的帐户才能使用此功能?

编辑 1: 澄清:我想发送“离线用户自动推送通知”,而不是来自应用程序的通知。我还发送链接上提到的“save_to_history”标志。

【问题讨论】:

【参考方案1】:

使用下面的代码发送推送通知

-(void)applicationDidEnterBackground:(UIApplication *)application

   [self sendMessageNotification:@"Hello Push notification" :1234 ];


-(void)sendMessageNotification:(NSInteger)recipientID message:(NSString*)message

    isSentPushNotification = YES;
    //[self sendPushNotificationToUser:message ids:@"1" audioFileName:@"default"];

    NSMutableDictionary *payload = [NSMutableDictionary dictionary];
    NSMutableDictionary *aps = [NSMutableDictionary dictionary];
    [aps setObject:@"default" forKey:QBMPushMessageSoundKey];
    [aps setObject:message forKey:QBMPushMessageAlertKey];
    [aps setObject:@"1" forKey:QBMPushMessageAlertLocArgsKey];
    [payload setObject:aps forKey:QBMPushMessageApsKey];
    QBMPushMessage *pushMessage = [[QBMPushMessage alloc] initWithPayload:payload];
    // Send push to users with ids 292,300,1395
    [QBRequest sendPush:pushMessage toUsers:[NSString stringWithFormat:@"%lu",(long)recipientID]successBlock:^(QBResponse *response, QBMEvent *event) 
        NSLog(@"Successfully dilivered push notification");
     errorBlock:^(QBError *error) 
        NSLog(@"Fail to diliver push notification %@",error);

    ];

但你应该先订阅用户接收推送通知

- (void)application:(UIApplication *)application didRegisterForRemoteNotificationsWithDeviceToken:(NSData *)deviceToken

    // Register subscription with device token
    [QBRequest registerSubscriptionForDeviceToken:deviceToken successBlock:^(QBResponse *response, NSArray *subscriptions) 
        // Registration succeded
     errorBlock:^(QBError *error) 
        // Handle error
    ];
 

更多详情请关注this

【讨论】:

请在使用 Quick blox 的任何 API 之前创建会话 很抱歉回复晚了和混淆了。我实际上想发送“离线用户的自动推送通知”而不是来自应用程序的通知。我也更新了问题。 据我所知,发送推送通知我们只需要用户 ID。它不依赖于在线或离线用户状态。发送推送通知后请检查您的日志 嘿,找到了我的问题的解决方案。不过感谢您的帮助。【参考方案2】:

找到问题了。

我们必须在应用进入后台时退出聊天。 我认为,这可能需要让服务器知道我们实际上处于离线状态,它应该向我们发送推送通知。 (只是猜测!!)

我认为文档中也提到了注销的事情,但我不知道它是如此重要。

【讨论】:

是的,这里是quickblox.com/developers/…

以上是关于Quickblox“离线用户的自动推送通知”不起作用的主要内容,如果未能解决你的问题,请参考以下文章

Quickblox 位置示例不起作用

Quickblox颤振自定义对象更新不起作用

Quickblox 一对一聊天记录不起作用

quickblox 推送通知在生产模式下不起作用

Quickblox:基于带有“+”字符的字段值获取自定义对象似乎不起作用?怎么修?

使用dwr后,javaweb设置的session超时失效,web.xml和tomcat设置都不起作