Quickblox聊天设置在Xamarin C#SDK中将历史保存为true
我正在使用。我想将消息发送到特定的对话框。在Xamarin特定的文档中没有很好的记录。我决定去参观。从那里我可以学到 通过使用Chat 2.0,您不会自动存储消息。此外,如果不将消息保存到历史记录,则不会创建/更新对话框实体 我可以推断,如果我将Quickblox聊天设置在Xamarin C#SDK中将历史保存为true,c#,xamarin,sdk,quickblox,C#,Xamarin,Sdk,Quickblox,我正在使用。我想将消息发送到特定的对话框。在Xamarin特定的文档中没有很好的记录。我决定去参观。从那里我可以学到 通过使用Chat 2.0,您不会自动存储消息。此外,如果不将消息保存到历史记录,则不会创建/更新对话框实体 我可以推断,如果我将save_to_history设置为1,聊天对话框将自动创建,消息将存储在后端。但是,我不知道应该如何在C#SDK中指定,在这个方法签名中使用causeextraParam public void SendMessage(int userId, stri
save_to_history
设置为1,聊天对话框将自动创建,消息将存储在后端。但是,我不知道应该如何在C#SDK中指定,在这个方法签名中使用causeextraParam
public void SendMessage(int userId, string body, string extraParams, string dialogId, string subject = null, Quickblox.Sdk.Modules.ChatXmppModule.Models.MessageType messageType = Quickblox.Sdk.Modules.ChatXmppModule.Models.MessageType.Chat)
这只是一根绳子。我深入研究了反汇编代码,经过一些调查,了解到这个参数在内部用作XML,所以我尝试了这两个选项
var extraParams = "<extraParams> " +
"<save_to_history>1</save_to_history> " +
"</extraParams>";
var extraParams=“”+
"1 " +
"";
而且
var extraParams = "<save_to_history>1</save_to_history> ";
var extraParams=“1”;
但这些都不起作用。
有人知道我应该如何指定extraParam吗
关于问题很简单,我在发送消息之前忘记呼叫connect。 下面是发送消息的方法
public async Task SendMessageAsync(IUser sender, IChatMessage message, string channelID, CancellationToken token)
{
await loginIfRequired(sender, token);
var jsonMessage = JsonConvert.SerializeObject(message);
var recipientID = await getQuickbloxUserId(message.RecipientID, token);
var extraParams = "<extraParams> " +
"<save_to_history>1</save_to_history> " +
"</extraParams>";
_quickblox.ChatXmppClient.SendMessage(recipientID, jsonMessage, extraParams, channelID);
}
一切都很顺利,对话也就建立起来了。
希望这能帮助别人
_quickblox.ChatXmppClient.Connect(_currentUserID.Value, password);