Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/ios/94.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Ios Quickblox';脱机用户自动推送通知';不起作用_Ios_Apple Push Notifications_Quickblox - Fatal编程技术网

Ios Quickblox';脱机用户自动推送通知';不起作用

Ios Quickblox';脱机用户自动推送通知';不起作用,ios,apple-push-notifications,quickblox,Ios,Apple Push Notifications,Quickblox,我有下面的场景。 用户A在前台向用户B发送消息——这正在工作 当应用程序在后台时,从“消息”控制台向用户B发送推送通知——这正在工作 我想在应用程序处于后台时向用户B发送通知警报。我读到这是由quickblox自动完成的,但对我来说不是这样 我已经按照指示去做了 我正在开发模式中使用“初学者”帐户。此功能是否需要具有“服务器端历史记录”的帐户 编辑1: 澄清:我想为离线用户发送“自动推送通知”,而不是来自应用程序的通知。我还发送了链接中提到的“保存到历史记录”标志。要发送推送通知,请使用下面的代

我有下面的场景。 用户A在前台向用户B发送消息——这正在工作 当应用程序在后台时,从“消息”控制台向用户B发送推送通知——这正在工作

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

我已经按照指示去做了

我正在开发模式中使用“初学者”帐户。此功能是否需要具有“服务器端历史记录”的帐户

编辑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
    }];
} 
有关详细信息,请查看发现问题的

当应用程序进入后台时,我们必须从聊天室注销。 我认为,这可能需要让服务器知道我们实际上处于脱机状态,它应该向我们发送推送通知。(只是猜测而已!!)


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

请在使用Quick bloxSorry的API之前创建会话,以防回复延迟和混淆。我实际上想发送“脱机用户自动推送通知”,而不是来自应用程序的通知。我也更新了这个问题。我知道发送推送通知只需要用户id。它不依赖于在线或离线的用户状态。发送推送通知后,请检查您的日志嘿,找到了我问题的解决方案。谢谢你的帮助。是的,给你