关于PhoneGap转apicloud的那些事
一直在做PC端的HTML5开发,之前也用过Phonegap,一直关注Hybird开发的发展。前几天看到APICloud,试用了一下,整体感觉不错,打算转到apicloud开发,针对两个平台我也简单的做下总结。
操作方法
- 01
1. PhoneGap起源—— 构建一个Web技术和Objective-C之间的桥梁,即让Web技术和Objective-C之间能够互联互通。通过标准的Web技术(HTML、JavaScript、CSS),开发者能够开发类似本地应用的iPhone程序。 MP:使用Web技术开发类似本地应用的程序。
- 02
2.PhoneGap主要功能 打包:可以打包Web应用为本地应用格式(apk和ipa文件) 访问智能移动设备本地特性:GPS、设备摄像头、设备信息、通讯录等
- 03
3.PhoneGap的本质:在移动设备上像本地应用一样运行Web应用(WebView实现);实现JavaScript和本地API之间的调用和通信。 PhoneGap应用:实际上就是运行在移动设备中WebView组件内的Web应用。
- 04
4.PhoneGap实现的JavaScript和本地API之间的相互调用和通信方式: iOS: JavaScript-本地代码:本地代码拦截JavaScript中调用的window.location="gap://Class.method/args"命令。本地代码拦截该命令后,解析获取的参数,再调用对应的类、方法并传递参数 本地代码-JavaScript:UIWebView.stringByEvaluatingJavaScriptFromString,实现本地代码调用JavaScript Android: JavaScript-本地代码:拦截JavaScript的prompt命令(默认会弹出对话框,PhoneGap的Android本地代码会拦截该对话框) Java-JavaScript:Android上的PhoneGap内部,使用Java实现了一个HTTP服务器,通过持久性的XHR连接,JavaScript可以不断轮训内部XHR服务器存储的信息,从而实现了从Java到JavaScript方向的通信 BlackBerry 4.x:通过document.cookie实现(一方设定,另一方从Cookie中获取信息) BlackBerry WebWorkshop JavaScript-Java:通过ScriptEngine.addExtension,java对象可以暴露给JavaScript Java-JavaScript:Java可以使用ScriptEngine.executeScript来调用JavaScript Windows Phone7: JavaScript-本地代码:通过window.external.Notify将信息发送给本地代码 本地代码-JavaScript:通过WebBrowser.InvokeScript运行本地代码调用JavaScript
- 05
5.PhoneGap功能特点 优点: 兼容性 标准化——PhoneGap采用W3C标准 JavaScript+H5 开发成本低 缺陷: 运行速度慢,UI反应延时,在移动端越来越要求体验上,表现的不是很流畅。
- 06
6.WebView和UIWebView 相同点: 用于在移动设备上显示网页,二者都使用WebKit引擎 不同点: WebView——Android UIWebView——iOS 本质:WebView提供了与浏览器同样的功能,但不提供浏览器边框。因此,WebView方式下运行的Web应用,在用户看来就像在本地应用一样。WebView封装了Web应用。
- 07
Apicloud 一个新兴的平台,上线短短半年多就被业界所看好,他们是用前端语言就能写出媲美原生语言的app,使用JavaScript即可轻松调用各类模块,如果你一时忘记某个模块的参数名称,IDE还提供智能提示功能;同时每个模块都设定了配置项,开发者可快速的更改配置项以满足差异化和精细化的需求,一套代码适配双平台应用。平台产出的app上架store完全没问题,目前已经有很多商业案例。
- 08
优点: 1、方案完整,简化,上手快。因为有Phonegap的基础,了解概念花了不到两个小时,做出第一个小App花了一天半。 2、IDE整合做的不错,直接连接云端,SVN代码同步,直接连接手机App Loader真机调试,Log可以通过IDE输出,比模拟器真实,直观。 3、云编译很方便,跨平台打包,直接生成二维码,我的小App做完打包,直接发二维码给朋友用。 4、手机底层硬件/组件调用API很实用,测了一些,比如语音识别,都不错。 5、文档完备,相比开源项目往往缺乏文档,信息需要东拼西凑来说,APICloud的文档比较集中和全面。
- 09
缺点: 1、缺乏常见模式App的完整框架Demo,平台前期估计得知识沉淀,一时半会不会有很多的demo和教程指导,时间长就应该会好一些。 2、UI组件不够丰富(也可能是我了解还不够),我尝试写测试App的时候最先考虑用APICloud提供的UI组件,但是发现很散且不成体系,无奈只好用JQMobi搭建了UI框架,虽然知道既然APICloud宣称可以实现原生App体验,像我这样使用第三方JS框架的方式apicloud官方肯定是不推荐的。 3、文档层次和细致程度还不够。有一些地方有错误。另外还有一些API没有说明文字,但是他们的文档是开源的,开发者可以帮助修改。
- 10
经过几个月的快速迭代,现在的APICloud已经相当强大,各种封装好的的原生模块,完善的云端数据库,让用户可以快速的开发自己的App,无需把经历放在购置域名,服务器上,节省了大部分费用。在开发中的问题已经经验总结都分享在论坛中,大多数都已被加精,大家有兴趣可以看看我之前的发布的经验分享。