APP下载

基于标签系统的校园社交平台的实现

2016-03-13南京工业大学王锦涛虞得贤

电子世界 2016年13期
关键词:跨平台标签社交

南京工业大学 李 强 王锦涛 虞得贤



基于标签系统的校园社交平台的实现

南京工业大学 李 强 王锦涛 虞得贤

【摘要】社交应用占据了目前应用市场的半壁江山,然而大多数应用都面临着去同质化的问题,大多数应用选择的途径是给用户不同的社交定义,微信,QQ,陌陌,这些都是在满足不同人的心理需求。而基于标签的系统,完全抛开了人与人之间的关系,完全是将事与人之间联系起来,这样将会产生更多的连接关系,消息的送达将更加精确。跨平台应用能够大大降低开发成本,节约发布时间。

【关键词】标签;跨平台;社交

面对着移动app发展的爆发期,社交应用满地开花,社交已经成为人们生活的一部分,但大多数社交应用都是基于用户之间的联系的,这样用户之间获取信息的来源相对单一,个人对于个性化的追求使得这类app无法满足人们对于信息的渴求。本课题尝试引入标签系统,对于大多数数据进行分类,在分类后进行分发,使信息准确到达用户。同时为了满足机构社交化发展的需求,系统引入公众平台,公众平台同样以标签为基础,这样用户,帖子,活动及机构都以标签为纽带进行聚合,使得他们无形中建立起关系。为了达到系统的快速开发与部署的目的,可以用AngularJs进行跨平台开发,这样同时也能满足不同平台的需求。

1.标签系统的作用

标签系统作为系统主线,连接系统的各个部分。用户选择自己感兴趣的标签进行关注,用户发帖时选择帖子相关的标签进行标注,机构用户同时也可以选择自己感兴趣的标签进行关注,这样有利于普通用户发现自己感兴趣的机构。当机构用户发布活动时同样可以标注帖子所属标签,这样活动就可以到达目标用户。这样一个闭环,就形成了以标签为中心的兴趣社交。

2.跨平台应用的开发

随着移动设备的发展,通过移动设备接入网络的人越来越多,移动应用的需求量也在增加。针对不同平台开发同一app带来的成本的增加,使得许多创业项目选择以HTML为基础的跨平台技术。这种开发避免了不同平台的差异性,可以使同一段代码运行于不同的平台,节约了开发成本。近年来也出现了一些框架用于开发单页面应用,通过分析,我们采用AngularJs与Cordova结合的方式进行开发,AngularJs相对成熟,同时它的双向绑定机制对于数据流操作较多的软件有明显的优势。采用Cordova,当html无法达到原生功能时可以通过编写插件的方式进行扩展,这样也能达到较好的用户体验。

3.Angularjs技术

AngularJs引入了指令、控制器、服务、过滤器等概念,强制开发者养成良好的编程习惯,实现了前端的MVC,指令用于对DOM节点的操作同时也是DOM节点与控制器之间数据交流的桥梁,控制器负责与后端API进行交互,获取数据,并建立一定的模型进行数据的存储。同时控制器也是进行数据处理的地方,当数据到达后,在控制器中进行一定的处理后再在页面上呈现。

服务采用单例的模式,并且在整个应用的生命周期中将永远存在,这样服务就有了数据交换桥梁的作用,当我们进入不同页面时,框架将调用相应的控制器,进行数据的加载,我们可以通过url在控制器之间传递数据,但有些敏感数据,我们就可以利用服务来存储数据再在另一个控制器中取得数据。

还有一些组件是我们经常使用的,它们不存储数据,只是具有某种逻辑处理的功能,这些功能我们会经常使用,这样我们也可以利用服务单例的特性,建立一些服务,提供逻辑处理方法,这样减少每次使用时都要重新申请对象的开销。AngularJs内置了一些常用服务,我们常用的为路由,http服务。其中http服务为异步的,这样使我们在操作数据时不至于导致整个进程阻塞。

为了对异步的支持,Angular提供了Promise,使得我们能够很快编写异步方法,实现业务逻辑。过滤器的引入,使得数据处理更加结构化,我们可以自定义过滤器,将数据格式化的方法进行抽象,这样在需要数据格式化的时候就可以调用,以达到统一管理的目的。

4.Cordova封装

Cordova应用各个平台提供的webview特性,对各个平台的webview编写相同的接口,实现各个平台调用的一致性,将HTML,css,js等文件封装进app中,这样客户端加载相应的文件,通过js同服务器端API交互,进行数据的加载。这样可以实现较为良好的原生体验。

针对安卓平台的碎片化,我们还可以安装Cordova插件CrossWalk,CrossWalk通过在Cordova中嵌入浏览器引擎的方式,解决安卓平台webview的差异性问题。Cordova的插件机制也使得我们更容易扩展应用。HTML的接口相对原生接口来说还是限制比较大,这样我们可以通过插件的机制调用原生接口,实现较为良好的体验。

5.技术展望

Angular框架能够解决我们遇到的大部分问题,但许多开发过程中会遇到路由返回时页面刷新的问题,这样用户跳转页面后再返回就无法保证还原离开时的状态,用户体验极其差,虽然现在也有相应的解决方案,但解决的不够优雅。其机制为当用户跳转到其他页面时隐藏当前view,同时保存控制器,当返回时在将页面显示。这样也带来了问题,页面不知道何时去刷新,这样我们还要控制手动刷新的逻辑。

如果AngularJs在后期能够引入和Android类似的任务栈机制,能够很好地解决这一问题,也能够吸引更多的人来接触Angularjs技术。

参考文献

[1]高尚.Ajax/REST架构的研究与开发框架的实现[J].北京邮电大学,2008.

[2]格林,夏德瑞,大漠穷秋.用AngularJS开发下一代Web应用[J].中国科技信息,2013(23).

[3]冯晨超.基于AngularJS的物品和用户查询模块的设计与实现[D].南京大学,2014.

[4]董英茹.简谈AngularJS在下一代Web开发中的应用[J].软件工程师,2015,05:30-31.

Implementation of campus social networking platform based on tag system

Abstract:Social applications accounted for half of the current application market , but most applications are faced with the problem of removing homogenization , the commonest way in which these applications selected to use is to give users different social definitions. WeChat, QQ and momo,These different social applications are able to meet the psychological needs.The tag -based system is completely set aside the relationships between people,and entirely builds the links between people and items,this will produce more connected relationships,and delivery of messages will be more accurate.The time and cost of developing Cross-platform applications will be reduced obviously.

Keywords:tag; cross-platform; social-network

猜你喜欢

跨平台标签社交
跨层级网络、跨架构、跨平台的数据共享交换关键技术研究与系统建设
社交牛人症该怎么治
聪明人 往往很少社交
一款游戏怎么挣到全平台的钱?
社交距离
你回避社交,真不是因为内向
无惧标签 Alfa Romeo Giulia 200HP
不害怕撕掉标签的人,都活出了真正的漂亮
基于C++语言的跨平台软件开发的设计
标签化伤害了谁