2013-10-01 81 views
2

我期待在聊天室中使用quickblox顯示用戶名和消息。我希望只是將發件人名稱嵌入到郵件的自定義參數中,但參數永遠不會傳遞給我的chatroomDidRecieveMessageChatRoom消息上的自定義參數

我從示例中複製了代碼,但沒有運氣。

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

此外,似乎無法在發件人ID /收件人ID中找到可與郵件一起發送的模式。所以問題是,收到消息時獲取發件人數據的最佳選擇是什麼?

iOS上的工作...

回答

1

更好的辦法是incapsulate所有發件人的信息到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]; 
} 
+0

我收到來自chatroomDidRecieveMessage的消息,自定義參數爲nil,但設置它們。爲什麼? – Roman