我希望使用quickblox在聊天室中显示用户名和消息。我希望简单地将发件人名称嵌入到邮件的自定义参数中,但是参数永远不会通过我的chatroomDidRecieveMessage
。
我没有运气从示例中复制了代码。
[message setCustomParameters:@{@"playSound": @YES}];
此外,似乎无法在senderID / recipientID中找到可以与消息一起使用的模式。所以问题是,收到邮件时获取发件人数据的最佳选择是什么?
在iOS上工作......
答案 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];
}