Ios Quickblox';脱机用户自动推送通知';不起作用
我有下面的场景。 用户A在前台向用户B发送消息——这正在工作 当应用程序在后台时,从“消息”控制台向用户B发送推送通知——这正在工作 我想在应用程序处于后台时向用户B发送通知警报。我读到这是由quickblox自动完成的,但对我来说不是这样 我已经按照指示去做了 我正在开发模式中使用“初学者”帐户。此功能是否需要具有“服务器端历史记录”的帐户 编辑1:Ios Quickblox';脱机用户自动推送通知';不起作用,ios,apple-push-notifications,quickblox,Ios,Apple Push Notifications,Quickblox,我有下面的场景。 用户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。它不依赖于在线或离线的用户状态。发送推送通知后,请检查您的日志嘿,找到了我问题的解决方案。谢谢你的帮助。是的,给你