美文网首页
swift3.0 环信的会话列表的头像和名称显示

swift3.0 环信的会话列表的头像和名称显示

作者: xinle | 来源:发表于2017-01-13 17:08 被阅读600次

    参考环信官方解决方案

    • 使用消息扩展,每条消息都包含发送者的用户信息和发送时间(user_id,nick_name,user_photo,send_time)

    • 本地数据库,使用realm,在获取到用户信息(后台返回)时,存储更新到本地数据库

      /// 用户信息模型
      class UserInfo: Object {
          dynamic var nick_name = ""
          dynamic var user_photo = ""
          dynamic var user_id = ""
          dynamic var update_tome = "" //更新时间
      
          // 设置主键
          override static func primaryKey() -> String? {
              return "user_id"
          
          }
          // 设置搜索字段
          override static func indexedProperties() -> [String] {
              return ["user_id"]
          }
      
          /// 更新用户信息
          class func updateUserInfo(user_id: String,nick_name: String,user_photo: String){
              let realm = try! Realm()
              var value =  ["user_id": user_id]
              if user_photo.length > 0 {
                  value["user_photo"] = user_photo
              }
              if nick_name.length > 0 {
                  value["nick_name"] = nick_name  
              }
              try! realm.write {
                  realm.create(UserInfo.self,value: value, update: true)
              }
          }
      
          /// 通过UserID搜索用户
          class func searchUser(user_id: String) -> UserInfo? {
              let realm = try! Realm()
              let result = realm.objects(UserInfo.self).filter("user_id == \"\(user_id)\"")
              if result.count > 0 {
                  return result[0]
              }
              return nil
          }
      }
      
      
    • 实现EaseConversationListViewController的EaseConversationListViewControllerDataSource协议

           func conversationListViewController(_ conversationListViewController: EaseConversationListViewController!, modelFor conversation: EMConversation!) -> IConversationModel! {
              通过扩展消息获取user_id
              通过user_id搜索用户信息
              如果搜到用户信息,则对用户信息钟的update_time,和消息扩展的send_time对比,如果send_time是最近的,则更新本地数据,然后在使用用户信息
              没有搜到直接用扩展消息中的用户信息,并更新到本地
          }
      
      

    相关文章

      网友评论

          本文标题:swift3.0 环信的会话列表的头像和名称显示

          本文链接:https://www.haomeiwen.com/subject/xvusbttx.html