旭丹入职测试:聊天demo

  • 需求概述:

    • 整合环信、Jpush,实现聊天功能,推送功能、附近的人
  • Jpush新总结

    • 1.包名用manifest中定义的package,全体项目顶级包名,不要使用某个文件夹下的包名。出错将导致无法获取jpush对应device_id;
    • 2.ExampleApplication中的初始化操作拷贝到新项目application中,特殊界面处理在MyReceiver中处理;
    • jpush信息:
      • 包名 com.hyphenate.chatuidemo
      • AppKey 5ca73b070ee81650790374d2
      • Master Secret 1bb615931d54f2394a170bd3
  • 环信与开发工具intelliJ使用总结

    • 错误 error:android dex .... multiple dex files defind Lcom/baidu/a/a/a/;为重复加包,因为环信依赖easyui项目,部分包为公用,有时出现环信无法编译,有时出现easyui无法编译;解决方法:将所有的包拷贝到环信demo中,然后make easyui ,然后编译运行环信demo不会报错;
    • 环信大部分功能在easyui中实现,需要改此部分代码;
    • 环信项目使用了glide图片库,友盟分析库,百度地理SDK,bolts异步任务有序类,使用Parse作为数据传输和解析工具;
    • parse 是一个比较不错的开源项目,值得深入学习;

    • 完成上述功能做了一下几点:

      • 1.在登录注册页加入连接本地服务器代码,将用户账号、id等信息保存在服务器,同时开启jpush监听;退出部分停止jpush接收数据
      • 2.根据百度地理位置,传输目标当前所在区至本地服务器(非环信服务器),并根据“市”筛选出在某地附近的人,用户可以自行添加;
      • 3.聊天发送文本消息后,将聊天记录(from to content)同时发送到本地服务器,进行消息记录;
      • 4.登录后发送设备信息到本地服务器,特别是jpush 的device_id,以后可以通过device_id将信息推送给特定设备;
        • 注:此处存在隐患(①jpush在网络关闭后无法注销,②注销后如果没有重新登录设备id不变,如果登陆了其他账号,需要清除其他账号存在该设备的id,否则该设备会受到多用户的推送,③设备异常下机,无法清除数据库信息时,注册页开启接受推送服务,将导致未登录用户受到推送给该设备id的信息,即使未登录)
      • 5.服务器端做了7个功能:
        • 1.用户登录
        • 2.用户注册
        • 3.用户删除
        • 4.接受单个用户设备信息
        • 5.保存聊天记录
        • 6.搜索附近的人
        • 7.上传地理位置

results matching ""

    No results matching ""