ChatRoom消息上的自定义参数

时间:2013-10-01 20:28:19

标签: quickblox

我希望使用quickblox在聊天室中显示用户名和消息。我希望简单地将发件人名称嵌入到邮件的自定义参数中,但是参数永远不会通过我的chatroomDidRecieveMessage

我没有运气从示例中复制了代码。

 [message setCustomParameters:@{@"playSound": @YES}];

此外,似乎无法在senderID / recipientID中找到可以与消息一起使用的模式。所以问题是,收到邮件时获取发件人数据的最佳选择是什么?

在iOS上工作......

1 个答案:

答案 0 :(得分:1)

更好的方法是将所有发件人的信息封装到JSON中,例如,让我们在邮件中发送用户的位置:

#define kLatitude @"latitude"
#define kLongitude @"longitude"
#define kMessage @"message"

NSMutableDictionary *dict = [NSMutableDictionary dictionary];
[dict setObject:@"12.23423424" forKey:kLatitude];
[dict setObject:@"-2.13123333" forKey:kLongitude];
[dict setValue:@"Hello, this is my location" forKey:kMessage];

// to JSON:
NSError *error = nil;
NSData* nsdata = [NSJSONSerialization dataWithJSONObject:dict options:NSJSONWritingPrettyPrinted error:&error];

// send message
NSString* jsonString =[[NSString alloc] initWithData:nsdata encoding:NSUTF8StringEncoding];     
[[QBChat instance] sendMessage:jsonString toRoom:self.currentRoom];

并收到消息:

-(void)chatRoomDidReceiveMessage:(QBChatMessage *)message fromRoom:(NSString *)roomName{
    // JSON parsing
    NSData *data = [message.text dataUsingEncoding:NSUTF8StringEncoding];
    NSDictionary *jsonDict = [NSJSONSerialization JSONObjectWithData:data options:NSJSONReadingMutableContainers error:nil];

    NSString *message = [jsonDict objectForKey:kMessage];
    NSString *latitude = [jsonDict objectForKey:kLatitude];
    NSString *longitude = [jsonDict objectForKey:kLongitude];
}