PhoneGap聊天应用程序用户可以看到其他人的消息

phonegap chat application user can see others message

本文关键字:其他人 消息 聊天 应用程序 用户 PhoneGap      更新时间:2023-09-26

我正在使用phonegap开发一对一的聊天应用程序。我的问题是当用户单击联系人并发送消息时。然后用户单击返回按钮并单击另一个联系人,它仍然可以看到他刚刚发送给第一个用户的消息。

这是我代码的一部分:

这是使用ajax从服务器获取联系。成功后,它将生成一个列表视图以显示所有联系人。

$.each(contacts, function(i,item)
{
  output += '<li  data-name='+item+'><a href="#chat_page">' + item + '</a></li>';
  $('#contacts_list').html(output).listview('refresh');
  //Show the contact name on the front of chat page
  $('#contacts_list').children('li').on('click', function ()
  {
    var contact_name=$(this).attr('data-name');
    $('#contact_name').html(contact_name);
    get_name(contact_name);
  });
});
<!--When someone click a user in contacts, it will show the chat page-->
<div data-role="page" id="chat_page" data-role="page" data-theme="a">
<div data-role="header">
  <h1 id="contact_name"></h1>
</div>
<div data-role="content">
  <div id="incomingMessages" name="incomingMessages" class="msgContainerDiv" > 
  </div>
  <label for="messageText"><strong>Message:</strong></label>
  <textarea id="messageText"></textarea>
</div>
<div data-role="footer">
  <fieldset class="ui-grid-a">
    <div class="ui-block-a">
      <a href="#contacts_page" id="goBackButton" data-role="button">Go Back</a>  
    </div>
    <div class="ui-block-b">
      <button data-theme="a" id="chatSendButton" name="chatSendButton">Send
</input>
  </fieldset>
</div>
</div>

这是 ajax 代码的一部分,我使用 ajax 获取聊天数据,然后将它们附加到我的聊天页面。

success: function(data)
                 {
                 var get_data = JSON.parse(data);
                 $("#incomingMessages").append
                 (
                  "<div class='message'><span class='username'>" +
                  (get_data.from || 'Anonymous') +"</span> : " +
                  (get_data.message || ' ') + "</br>" +
                  (get_data.message_time || ' ')
                  +"</div>"
                  );
                 }
                 });

我知道原因是当用户单击联系人时,它将始终转到同一页面,这就是为什么所有用户都可以看到消息的原因。

有什么解决方案吗?

提前谢谢。

一个简单的

解决方案是使用本地存储来存储每个用户的历史记录(#incomingMessages)和#messageText

然后,您可以清除#messageText并在用户重新打开聊天时重新加载它。

切换

用户时应清除#incomingMessages。当您想用新用户的消息替换 HTML 内容时,您可能会将 HTML 内容保留在该div 中。

类似的东西

$('#incomingMessages').html('')