标题 | 基于iOS即时通讯的设计与实现 |
范文 | 周翠红 摘要:基于iOS平台即时通讯的设计与实现采用Obj-C语言,在iOS平台开发而成。采用的是iOSXMPPframework框架,开始时间更短,成本更低。为了更好的改善用户体验,本机设计了方便操作,便于用户使用的界面,能给用户在使用过程中带来舒适的感受。该APP可以进去用户的注册和登陆,以及判断该用户是否已注册。可以让用户进行好友的添加,删除,聊天等序列操作。 关键词:iOS;Objective-C;即时通讯;XMPPframework 中图分类号:TP315 文献标识码:A 文章编号:1009-3044(2016)30-0011-02 1 引言 在如今的信息化时代,人与人之间的沟通显得尤为的重要,只有不断地与人沟通,才能使不断的发展自己,了解自己,丰富自己,提高知识水平,扩大的自己的朋友圈。原有的网络社交环境受到时间,设备,位置等许多因素的限制,已经不能满足人们随时随地沟通的需求。而智能终端和4G网络的发展,逐渐的让移动互联网成为人们交流与沟通的首选平台[1]。新形式的移动网络不仅仅可以提高沟通效率,还改善了网络环境,扩展了新的沟通形式。正是这样提高了中国在全球一定社交网络服务上的技术形象,并且在移动领域占据主导和领先地位具有重要意义[2]。腾讯自主开发了OICQ,由于当年大部分国内用户访问ICQ比较困难。OICQ在设计,稳定性,易用性和本能满足了很多国内网络用户的需要。ICQ的迅猛发展也让在桌面软件领域独步风骚的Microsoft和当时的互联网领头羊Yahoo嗅到了商机,它们当时分别推出了Yahoo Messenger、MSN Messenger和曇花一现的MS Chat。即时通讯市场的雏形开始展现出来,因为有了世界级软件公司和国际互联网大哥的加入,从此拉开了IM时代的大幕。 2 系统具体设计 基于iOS的即时通讯,主要有六个功能模块,包括用户登录、用户注册、用户聊天、查看用户好友信息、视频观看、用户个人信息查看与修改。为用户提供比较友好的人机交互的界面,方便用户与好友随时随地进行聊天。并且发现模块的精选视频让用户在休息之余,可以选择自己喜欢类型的视频观看。丰富了用户的休息时间的生活。 2.1 系统流程 该APP的开发是在OSX系统下,使用Xcode7.2为开发工具,openfire作为APP的服务器,MySql作为服务器的数据库。 整个箱项目的开发包括项目框架的搭建,服务器的配置,数据库的建立,以及前端界面的设计与实现,用户登陆与注册采用coredata存取用户数据,前端的界面设计是采用iOS的框架里面的控件进行设计。整个项目有四个主要的界面,四个主界面里有不同的界面来完善功能。该App为用户提供比较友好聊天界面,方便用户与好友进行聊天,并且观看自己喜欢类型的视频。通过结合相关的软件和及相关的书籍以及老师的指导来完成该App的开发。用户注册成功账号和密码之后可进入系统,主要功能模块如下: 2.2详细设计与实现 如图2为登陆界面是模仿微信的登陆界面。其中设置有两个textfiled输入框和两个button按钮,其中的登陆按钮使用了一个定时器来实时监听两个输入框,判断账号密码是否已经输入,如果没有输入账号密码,按钮为灰色,并且不能点击。输入之后登陆按钮为绿色,可以点击。两个textfiled分别设置他们的属性placehold为QQ号/微信号/手机号和密码。 登录界面实现的主要代码: [MBProgressHUD showMessage:@"正在登录..."]; //将两个输入框里的值分别给enterUser,enterPassword属性 [JZQAcount defaultAcount].enterUser = self.textField.text; [JZQAcount defaultAcount].enterPassword = self.textField1.text; [[JZQXMPPTool sharedJZQXMPPTool] xmppEnter:^(XMPPEnterType result) { dispatch_async(dispatch_get_main_queue(), ^{ [MBProgressHUD hideHUD]; if (result) { NSLog(@"%s 登录成功",__func__); JZQTabbarViewController * tab = [[JZQTabbarViewController alloc]init]; //将根视图设置为自定义的tabbarcontroller [UIApplication sharedApplication].keyWindow.rootViewController =tab; [JZQAcount defaultAcount].enter = YES; //保存账号密码 [[JZQAcount defaultAcount] save]; }else { [MBProgressHUD showError:@"帐号或密码错误"]; } }); }]; 3界面的设计 界面要是由电子名片模块和头像模块结合开发出来的。电子名片模块提供用户的个人信息,将用户的个人信息保存在数据库里。而头像模块则将用户的头像保存起来。点击不同的信息,可以将对应的信息修改。其中头像模块是调用系统的相册,选取系统相册里面的图片。 界面实现的主要代码: //获取用户电子名片信息 XMPPvCardTemp * vCardTemp = [JZQXMPPTool sharedJZQXMPPTool].vCard.myvCardTemp; //第一组,将用户的头像,名字,登陆账号保存在模型里 MeModel * d = [MeModel meWithIcon:[UIImage imageWithData:vCardTemp.photo] name:vCardTemp.nickname number:@"mingzibei" vcClass:[BenrenViewController class]]; NSArray * array = @[d]; //第二组, MeModel * d1 = [MeModel meWithIcon:[UIImage imageNamed:@"MoreMyAlbum"] name:@"相册" vcClass:[PhotoViewController class]]; MeModel * d2 = [MeModel meWithIcon:[UIImage imageNamed:@"MoreMyFavorites"] name:@"收藏" vcClass:[CollotViewController class]]; MeModel * d3 = [MeModel meWithIcon:[UIImage imageNamed:@"MoreMyBankCard"]name:@"钱包" vcClass:[MoneyViewController class]]; NSArray * array1 = @[d1,d2,d3]; MeModel * d4 = [MeModel meWithIcon:[UIImage imageNamed:@"MoreExpressionShops"] name:@"表情" vcClass:[ExpressionViewController class]]; NSArray * array2 = @[d4]; // MeModel * d5 = [MeModel meWithIcon:[UIImage imageNamed:@"MoreSetting"] name:@"设置" vcClass:[SettingViewController class]]; NSArray * array3 = @[d5]; //用一个数组包含其他数据模型的数组 self.arr = @[array,array1,array2,array3]; 4 结束语 此次开发的项目是一个基于iOS平台的手机APP,使用openfire作为本地服务器,MySql为服务器数据库,以Xcode作为开发工具,在OSX系统下开发。该App界面是模仿微信开发出来的。素材也是通过抓包的方式获取,此外的发现界面我添加了视频功能,数据是从网上的接口获取来的,界面的搭建也尽可能地做到最好,其中动画的实现让我挺满意的,可以给予用户视觉的享受。 参考文献: [1] 达尔林普尔,纳斯特.Objective-C基础教程[M].北京:人民邮电出版社,2009:231-255. [2] 沃伦.iOS应用开发[M].北京:人民邮电出版社,2014:132-142. [3] 熊斌.iOS开发从入门到精通[M].北京:希望电子出版社,2012:58-77. [4] 姜承尧.MySQL技术内幕:SQL编程[M].北京:机械工业出版社,2012:46-67. [5] 杜江.PHP5与MySQL5 Web开发技术详解[M].北京:电子工业出版社,2007:41-55. [6] 王石,杨英娜.精通PHP+MySQL应用开发[M].北京:人民邮电出版社,2006:12-23. [7] 贾素来.常见动态网页技术比較[J].大众科技,2008(9). [8] 张绪旺.互联网创新加速服务贸易增长[N].北京商报,2012,5,31. [9] Luke Welling.PHP and MySQL Web Development(原书第四版)[M].北京:机械工业出版社,2009:88-90. |
随便看 |
|
科学优质学术资源、百科知识分享平台,免费提供知识科普、生活经验分享、中外学术论文、各类范文、学术文献、教学资料、学术期刊、会议、报纸、杂志、工具书等各类资源检索、在线阅读和软件app下载服务。