Caching Xamarin.forms中与Akavache的持续聊天信息
我不熟悉Xamarin表单。我正在用Xamarin Forms和Signaler构建一个聊天应用程序,我想让聊天信息像WhatsApp一样持久化。我正在使用阿卡瓦什,但我似乎没有成功。我的ChatPage视图模型中有这个代码片段Caching Xamarin.forms中与Akavache的持续聊天信息,caching,xamarin.forms,signalr,signalr-hub,akavache,Caching,Xamarin.forms,Signalr,Signalr Hub,Akavache,我不熟悉Xamarin表单。我正在用Xamarin Forms和Signaler构建一个聊天应用程序,我想让聊天信息像WhatsApp一样持久化。我正在使用阿卡瓦什,但我似乎没有成功。我的ChatPage视图模型中有这个代码片段 if(ChatMessageList.Count != 0) { var _messages = BlobCache.LocalMachine.GetObject<ChatMessage>("Messages");
if(ChatMessageList.Count != 0)
{
var _messages = BlobCache.LocalMachine.GetObject<ChatMessage>("Messages");
ChatMessage chatMessage = new ChatMessage() { Message = _messages.Subscribe(x =>
chatmessage.Message = x.Message).ToString(), IsOwnMessage = isMe, IsSystemMessage = false,
ActionTime = _messages.Subscribe(x => chatmessage.ActionTime = x.ActionTime).ToString() };
ChatMessageList.Add(chatMessage);
MessagingCenter.Send(this, "SCROLL_BOTTOM");
}
else
{
ChatMessage chatMessage = new ChatMessage() { Message = message, IsOwnMessage = isMe,
IsSystemMessage = false, ActionTime = DateTime.Now.ToString("hh:mm tt") };
ChatMessageList.Add(chatmessage);
BlobCache.LocalMachine.InsertObject<ChatMessage>("Messages", chatMessage);
}
if(ChatMessageList.Count!=0)
{
var_messages=BlobCache.LocalMachine.GetObject(“messages”);
ChatMessage ChatMessage=newchatmessage(){Message=\u messages.Subscribe(x=>
chatmessage.Message=x.Message).ToString(),IsOwnMessage=isMe,IsSystemMessage=false,
ActionTime=\u messages.Subscribe(x=>chatmessage.ActionTime=x.ActionTime).ToString()};
添加(chatMessage);
发送(这是“滚动底部”);
}
其他的
{
ChatMessage ChatMessage=new ChatMessage(){Message=Message,IsOwnMessage=isMe,
IsSystemMessage=false,ActionTime=DateTime.Now.ToString(“hh:mm tt”)};
添加(chatmessage);
BlobCache.LocalMachine.InsertObject(“Messages”,chatMessage);
}
现在聊天信息以系统代码显示。请告诉我,我能做些什么吗?“我似乎没有成功”不是对问题的有用描述。您是否收到错误或异常?它具体在做什么或不做什么?它不是坚持。如果您从聊天页面切换到另一个页面并切换回另一个页面,则所有消息都将丢失您对所有数据使用相同的键“messages”,因此每次添加新数据时,旧数据都将被覆盖