如何基于Rexsee实现以Web开发方式创建Android应用

自闭症网瘾萝莉.ら 提交于 2019-12-05 15:03:26

Rexsee是国内的开源移动Web开发平台,针对Android手机、触摸屏等终端设备,提供底层开发和运行平台,以及扩展工具包,简化基于SDK的Java原生开发,支持开发者以标准化Web开发模式,即HTML5,CSS3和Javascript快速实现移动应用。可以有效降低技术实现门槛以及成本开销。

使用Rexsee开发Android应用与创建一个网站的流程无异,所有Rexsee代码仅体现在Web前端,放在HTML页面的<script>标签内。

编写Rexsee客户端,实际上就是编写Rexsee所能理解、渲染的HTML、CSS和Javascript代码。你可以把Rexsee理解为一个“浏览器”,这个“浏览器”除了支持Webkit支持的所有对象外,又扩展了100多个Javascript对象及相应的2000个方法和事件。

支持本地功能的调用接口,可以实现对本地存储、通讯录、传感器、定位信息等本地功能的调用。同时,还提供了离线提交、push推送等原生应用功能。

  • 界面: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对象的方法、事件编写代码便可实现相应功能。

简单代码示例如下

<html>
<head>
<title>这是一个android应用</tiltle>
<script type=text/javascript>
//Rexsee 代码从这里开始
window.onRexseeReady=function(){
 rexseeScreen.setScreenOrientation("portrait");  //设置屏幕方向
 rexseeTitleBar.setStyle('visibility:hidden;');  //标题栏样式  隐藏
 rexseeStatusBar.setStyle('visibility:hidden;');  //状态栏样式  隐藏
 rexseeDialog.toast('系统加载完毕!');    //出现后随即消失效果
}
</script>
</head>
</html>

代码写好之后使用在线编译生成APK文件,下载安装在终端;在线编译的首页地址是程序的网络地址;也可以使用预打包,把程序首页地址放在本地,把本地地址作为首页地址。

Rexsee社区提供了开发手册,按Rexsee对象的方法、事件编写代码便可实现相应功能。http://www.rexsee.com/rexsee/rexseeReference.apk

社区目前也提供在线开发环境,也可以本地开发后上传文件进行在线编译,最后封装成一个客户端。博客里有一个在线开发的hello world示例,供参考:http://my.oschina.net/u/194999/blog/42218

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!