免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
最近访问板块 发新帖
查看: 2080 | 回复: 0
打印 上一主题 下一主题

[HTML/HTML5] 深度支持Android平台——基于Rexsee的移动Web应用实现 [复制链接]

论坛徽章:
49
15-16赛季CBA联赛之福建
日期:2016-06-22 16:22:002015年亚洲杯之中国
日期:2015-01-23 16:25:12丑牛
日期:2015-01-20 09:39:23未羊
日期:2015-01-14 23:55:57巳蛇
日期:2015-01-06 18:21:36双鱼座
日期:2015-01-02 22:04:33午马
日期:2014-11-25 09:58:35辰龙
日期:2014-11-18 10:40:07寅虎
日期:2014-11-13 22:47:15申猴
日期:2014-10-22 15:29:50摩羯座
日期:2014-08-27 10:49:43辰龙
日期:2014-08-21 10:47:58
跳转到指定楼层
1 [收藏(0)] [报告]
发表于 2012-08-20 09:27 |只看该作者 |倒序浏览
2008年11月,《连线》杂志主编Chris Anderson 的《Web已死,Internet永生》一文在移动互联网大幕拉开之际引起轩然大波。应用交付的转变注定了传统Web模式已不再满足用户的需求与体验,Web应用向移动终端的渗透变得异常重要。
对于需要吸引不同群体用户,满足不同业务需求的应用而言,如何使用一种实用、成本合理,且可支持大量应用的开发方式来实现我们的移动愿景?在很多情况下看来,答案就是使用Web技术。
伴随着移动设备与网络结合紧密度的提升,移动平台的广泛支持,以及以HTML5为驱动的Web技术不断演进发展,以Web为中心的移动应用趋势愈发明显。原生应用和移动Web应用的界线也开始逐步缩减。
同时,众多移动Web开发框架的升级发展也加速了Web应用向移动终端的渗透。国内开源的移动Web开发平台Rexsee(
www.rexsee.com
)就是很典型的例子,它基于大量的扩展API,通过Javascript实现Web应用对移动终端功能的直接调用,建立起了Web应用与移动终端的桥梁。
模糊Web应用与原生应用界线
原生应用,也就是Native App,可以充分的发挥硬件设备和操作系统的功能特性,并可以完全不受网络限制,运行效率高,且在用户体验方面有着突出优势。但同时,因为技术门槛的原因,原生应用在具体实现上需要面对开发周期较长、成本较高、调试与发布以及后期管理维护相对复杂的问题。
对比Web应用,虽然在复杂的用户交互界面效果,以及对硬件功能的实现方面有着明显劣势,但使用标准化的Web技术为开发者带来了很大的自由度、广泛的应用范围和低廉的成本。
但即便如此,以浏览器为平台的Web应用相较于原生应用仍旧面临着诸多难以逾越的困境,其中最明显的则是对网络的依赖以及对移动终端的功能支持。
让Web应用脱离网络,超出浏览器范围运行,并可直接调用移动终端功能。基于这样的价值实现,Rexsee(
www.rexsee.com
)通过实现一种混合应用的形态,进一步模糊了原生应用与Web应用的界线。
Rexsee支持开发者以标准化Web开发模式,也就是使用HTML5、CSS3和JavaScript开发,并可通过在线编译生成原生应用客户端,快速实现移动应用。

  • 以Webkit为内核,在应用中保留浏览器元素,强化HTML5在浏览器之外的高度交互特性。

  • 基于原生开发,扩展接近2000个API,通过Javascript直接调用移动终端功能。

  • 符合W3C标准,完全兼容Sencha Touch、jQuery Mobile等第三方JavaScript工具包。

  • 提供云端应用与本地应用的不同展现形态,可完全脱离网络运行。
跨平台的取舍价值
iOS和Android的首当其冲,Symbian、黑莓、Meego、WebOS的夹缝求生,多种移动操作系统平台在当前的移动互联网中各自有着大批用户支持。摆脱平台和硬件环境的差异,让应用适配于全部平台,成为了移动Web应用一开始就需要承担的责任。
降低了对平台和底层的学习成本,提高代码复用以及最终应用交付的适用范围,这是跨平台的优势所在。但是,劣势同样明显:为兼顾不同平台,开发框架会相对臃肿,开发模式也会被动调整;其次,对于不同硬件功能的调用难免会因为迎合不同功能交集而做出舍弃,无法全面实现。
“一次开发,到处运行”成为了开发人员期望实现但又难以做到的问题。基于这样的一个鱼与熊掌的取舍,Rexsee选择深度支持Android平台,从而保证了高效同步的开发方式,以及全面功能的应用交付。截至目前为止,Rexsee提供了接近2000个扩展API,覆盖95%的Android原生功能实现。
同时,针对于目前移动Web开发框架所面对的一个通病,即缺乏对系统原生UI控件的调用能力,难以实现等同于原生应用的界面展现这一问题,Rexsee在最新发布的2.8版本里(infoQ报道:
http://www.infoq.com/cn/news/2012/02/rexsee2.8-release
)扩展多个对象,主要用于创建和管理原生界面元素,支持Android系统的原生UI布局(目前已支持Android SDK Platform API8的全部布局)。
开发者可以通过JS直接生成Android SDK中定义的布局对象和基本对象,对这些对象通过设置样式属性可以很灵活的控制其样式,完全实现等同于原生应用的界面展现与交互体验。
基于Rexsee的标准化Web开发模式
基于Rexsee的Android应用可以使用标准化的Web开发模式进行开发。所有的Rexsee代码仅体现在Web前端,放在HTML页面的标签内。
编写Rexsee客户端,实际上就是编写Rexsee所能理解、渲染的HTML、CSS和Javascript代码。与浏览器不同,Rexsee这个“浏览器”除了支持Webkit支持的所有对象外,又扩展了100多个Javascript对象及相应的2000个方法和事件。

  • 界面:Rexsee的页面设计支持Web布局和原生布局两种形态。
    针对于原生布局,可以通过Javascript语言构造出Android SDK中的布局和基本对象,结合相应的触屏事件,可以有很好的用户体验。且支持2D和3D的绘图功能。
    针对Web布局有两个不同类的对象,一是页面内对象,一是页面外对象。

    • 页面内对象指的是网页对象,如表格、DIV层、图片、画布等。可以用CSS来控制其样式,其渲染效果由Webkit引擎负责展现。

    • 页面外对象是指网页以外的元素,如各种Bar,对话框(Dialog),弹出窗口等。使用Rexsee的样式表定义,如该对象的位置、宽、高、透明度、颜色、字体等。页面外元素的样式是通过相关对象的样式设置方法来操作的。

  • 功能调用:同时支持同步和异步两种调用方式。实现多媒体支持,定位、位置服务,传感器,存储,蓝牙、wifi,以及推送和通知等功能。

  • 交互:通过Javascript的事件接口、Rexsee的事件接口以及Rexsee私有协议实现。   

    • 特别指出,私有协议是通过诸如:rexsee:info;rexsee:about等;

    • Rexsee的事件接口已经由Rexsee内置注册,使用时只需在相应的事件函数中编写用户代码即可,在事件触发时,用户代码会被执行。




  • 调试:和原有的Web前端开发一致。同时,Rexsee本身也提供了异常事件,用于捕捉错误。

  • 编译:整个过程其实就是将Rexsee代码和Rexsee客户端关联的过程。   

    • 可以体现在B/S架构下,只需将Rexsee代码所在的URL和Rexsee客户端首页绑定。这种架构下,Rexsee代码实际上是部署在服务器端,客户端体积小,无需下载更新即可实现应用升级。

    • 也可以在C/S架构下,需要将Rexsee代码、资源文件打包进Rexsee客户端,这种架构模式更加类似于原生应用,完全摆脱网络束缚,启动和运行效率较高。

    • 同时,Rexsee还提供了B/C/S混合架构模式,即整合B/S和C/S的优势。




对于开发者而言,只需在掌握Web前端开发的基础上,按需选用Rexsee提供的Javascript对象,按照Rexsee对象的方法、事件编写代码便可实现相应功能。
Rexsee Hello World
Rexsee开源技术社区在去年年底推出在线开发服务,登陆社区并访问“项目中心”就可在线创建、开发应用。同时,该服务更强化了开发者之间的应用源码分享。在Rexsee项目中心,我们可以很方便的在线实现第一个Hello World程序。
进入项目中心(
http://www.rexsee.com/project/index.php
)后,点击左侧头部的“创建新项目”开始咱们的Hello World应用创建。只需在对应的信息录入框中填写应用信息,并勾选权限设置即可创建成功。
编写index.html页面,输入如下代码:
   
        Rexsee Hello World
        
            //Rexsee代码从这里开始
            window.onRexseeReady=function(){
                rexseeDialog.toast('系统加载完毕!');//出现后随即消失效果
            }
         
   
   
说明:

  • Rexsee提供的是JS API,可以在HTML中加入标签;也可以在外部文件中添加JS代码,然后引用;

  • 本段代码中用到了window.onRexseeReady=function(),即当系统加载完毕后,自动执行{}中的JS语句;

  • rexseeDialog.toast(),这行代码执行时会弹出一个随即消失的对话框;

随后,利用Rexsee开发版可以方便的查看应用效果并快速调试。
图1. Rexsee Hello World应用截图

本文来自ChinaUnix文档频道,如果查看原文请点:http://doc.chinaunix.net/web/201208/2316655.shtml
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

北京盛拓优讯信息技术有限公司. 版权所有 京ICP备16024965号-6 北京市公安局海淀分局网监中心备案编号:11010802020122 niuxiaotong@pcpop.com 17352615567
未成年举报专区
中国互联网协会会员  联系我们:huangweiwei@itpub.net
感谢所有关心和支持过ChinaUnix的朋友们 转载本站内容请注明原作者名及出处

清除 Cookies - ChinaUnix - Archiver - WAP - TOP