仿微信基本功能。

基于XMPPserver的即时通信以及交友client。

----第一期代码的功能例如以下---- 



    1.新用户注冊 



    2.登陆并连接XMPPserver 握手 保持在线 



    2.查找最新注冊用户:(下拉刷新 上拉翻页。做的比較匆忙,没操作提示) 



    3.点击某个用户就可以对他发送消息(聊天记录下一期更新) 



    4.首页显示收到的和发送的全部消息(排序和分组下一期更新) 



    ----第二期更新内容---- 



    1.修复了注冊延时时间,加入了切换账号功能,修复了输入框适配问题 



    2.微信页面和聊天页面界面已基本重做 。首页消息按联系人分组按时间逆序显示。聊天气泡有待优化,收发消息所有採用 NSNotifaction 不用操心消息发了页面不刷新。自己主动滚到最新一条。

键盘监听效果更加友好,採用TableViewInset来错位。 



    3.加入好友功能,加入完后能够在好友列表查看到,若是在是注冊的太早要翻非常久,或者新注冊用户刷新不出来,能够通过webview直接加入,可是需到控制台查看互相的ID 



    4.User对象和Message对象採用FMDB+类java的Dao模式用静态方法固化,而且有个开发人员自己写的对象to字典、字典to对象的两个超好用的方法,大家值得一看!

5.删除了XMPPManager单例中的一些废话和临时用不着的内容。加入了非常多凝视。大家能够细细品读。

----第三期更新内容---- 



    1. 增加离线图片的发送接收支持; 



    2. 优化了输入框。并以自己定义输入面板的形式实现了shareMore(分享很多其它); 



    3. 发送图片的两种模式均以实现 ,通过http上传至server再转发URL(已凝视掉),通过base64码直接编码图片再解码,均支持离线收发。 



    因为作者没有做屏幕适配,所以请在Retina 4-inch模拟器或者iPhone5中执行代码。 



    ----第四期代码的功能例如以下---- 



    1. 修复绝大部分bug 



    2. ios7体验更佳 



    3. 图片/文字畅聊不闪退 



    4. 支持按昵称模糊搜索。找到朋友更easy 



    5. 修复了域名丢失引起的连接失败问题,如今server24小时确保能连接 



    6. 更准确的提示信息。更好的用户体验 



    PS: 1~3期的用户数据已清除,如需尝试请又一次注冊 



     



    作者说:这次给大家带来的demo我已经写好了server端,也配置好了openfireserver,大家假设想执行的话先确定server是否开启(APIport8080,openfireport5225)。ping一下 www.hcios.com 假设未开启请QQ,一般开启时间为9:00~18:00



    预计网上再也找不到比我写的这个更好的XMPP Demo了,上传此demo的目的为给很多其它的朋友了解即时通讯技术,在您看的爽的同一时候,请同意我要求您不要用此demo以商业用途传播 ,谢谢。

源代码下载:http://code.662p.com/view/5849.html

<ignore_js_op> 

<ignore_js_op> 

<ignore_js_op>

具体说明:http://ios.662p.com/thread-1073-1-1.html

仿ios版微信应用源代码的更多相关文章

  1. 仿PC版微信的练手项目(可实时通讯)

    仿PC版微信的DEMO 本项目是由一个仿PC版微信的vue前端项目,和一个使用leancloud进行数据存储的.提供WebSocket的node后端项目构成. 本项目使用的技术栈:vue + vue- ...

  2. 腾讯微信被怼,iOS版微信不能打赏了

    2017年4月19日,估计很多有着大量粉丝的微信自媒体作者会感到很不爽,因为他们的苹果粉丝再也无法很爽快地.肆意.任性地打赏他们了,按目前iphone手机的占有率,估计打赏率会掉一半以上. 据微信派微 ...

  3. iOS版微信6.5.21发布 适配iPhone X

    昨日,iOS版微信迎来v6.5.21正式版发布,本次升级主要适配iPhone X,在聊天中查找聊天内容时,可以查找交易消息.可以给聊天中的消息设置日期提醒.上一个正式版v6.5.16发布于9月13日, ...

  4. 微信团队分享:iOS版微信的高性能通用key-value组件技术实践

    本文来自微信开发团队guoling的技术分享. 1.前言 本文要分享的是iOS版微信内部正在推广和使用的一个高性能通用key-value 组件的技术实践过程,该组件在微信内部被命名为MMKV(以下简称 ...

  5. 微信团队分享:iOS版微信是如何防止特殊字符导致的炸群、APP崩溃的?

    本文来自微信开发团队yanyang的技术分享. 1.引言 相信大家都遇到过一段特殊文本可以让iOS设备所有app闪退的经历.前段时间大年初一,又出现某个印度语字符引起iOS11系统奔溃,所幸iOS版微 ...

  6. 微信团队原创分享:iOS版微信的内存监控系统技术实践

    本文来自微信开发团队yangyang的技术分享. 一.前言 FOOM(Foreground Out Of Memory),是指App在前台因消耗内存过多引起系统强杀.对用户而言,表现跟crash一样. ...

  7. 微信团队分享:极致优化,iOS版微信编译速度3倍提升的实践总结

    1.引言 岁月真是个养猪场,这几年,人胖了,微信代码也翻了. 记得 14 年转岗来微信时,用自己笔记本编译微信工程才十来分钟.如今用公司配的 17 年款 27-inch iMac 编译要接近半小时:偶 ...

  8. 解决alert在ios版微信中显示url的问题(重写alert)

    为了解决alert在ios版微信中显示url的问题 window.alert = function(name){ var iframe = document.createElement("I ...

  9. react-native自定义Modal模态框|仿ios、微信弹窗RN版

    前序 纵观每个优质项目,无论web端还是native原生应用开发,弹窗都是不可忽视的一环,能很大程度上直接决定用户体验.如:微信.支付宝.ios都有很成熟的一套弹窗UI展示场景. 最近一直沉迷在rea ...

随机推荐

  1. Amazon的AWS账单看起来不是很方便

    发了一个PDF格式的收据,只写了收取的费用,EC2下面的明细没有. DetailAmazon Simple Notification Service $0.00Charges $0.00Estimat ...

  2. 在android解析json

    1.采用一般方式解释json为对象 package com.heimazyh.testjson; import org.json.JSONException; import org.json.JSON ...

  3. linux cmd: linux下解压命令大全

    linux下解压命令大全 .tar 解包:tar xvf FileName.tar打包:tar cvf FileName.tar DirName(注:tar是打包,不是压缩!)———————————— ...

  4. Android中连接蓝牙设备时遇到createRfcommSocketToServiceRecord的UUID问题和BluetoothSocket的connect失败

    [问题] 折腾: [记录]编写Android中的蓝牙模块驱动和底层HART设备 期间,参考: Bluetooth | Android Developers – ManagingAConnection ...

  5. PHP - 自定义函数

    第7章 自定义函数 学习要点: 1.标准函数 2.自定义函数 3.文件包含 4.魔法常量 一般来讲,冗余的代码都是不好的.一而再,再而三地重写代码不仅浪费时间,从布局结构角度看也显得粗制滥造.与所有优 ...

  6. 在WPF的DATAGRID中快速点击出现在ADDNEW或EDITITEM事务过程不允许DEFERREFRESH

    原文 在WPF的DATAGRID中快速点击出现在ADDNEW或EDITITEM事务过程不允许DEFERREFRESH 在项目中关于DataGrid的遇到过一些问题,其中是关于迁入CheckBox的双向 ...

  7. encode_json 会对给定的Perl的数据结构转换为一个UTF-8 encoded, binary string.

    use JSON qw/encode_json decode_json/ ; use Encode; my $data = [ { 'name' => 'Ken' , 'age' => 1 ...

  8. 基于visual Studio2013解决C语言竞赛题之1040因数分解

     题目 解决代码及点评 /* 将一个数M分解为质因数(M≠0). */ #include <stdio.h> #include <stdlib.h> void main() ...

  9. B树的实现与源代码二(删除源代码)

    int BTreeMaximum( BNode *x ) { if ( x->leaf ) { return x->key[x->size - 1]; } else { return ...

  10. 手动加入PE文件数字签名信息及格式具体解释图之下(历史代码,贴出学习)

    #include <windows.h> HANDLE hWriteFileHandle = NULL ; HANDLE hReadFileHandle = NULL ; HANDLE h ...