BT

如何利用碎片时间提升技术认知与能力? 点击获取答案

Web标准交流会介绍PhoneGap主题

| 作者 崔康 关注 0 他的粉丝 发布于 2012年3月20日. 估计阅读时间: 6 分钟 | Google、Facebook、Pinterest、阿里、腾讯 等顶尖技术团队的上百个可供参考的架构实例!

最近,Web标准交流会北京站组织了以PhoneGap为主题的技术沙龙,邀请了来自Adobe的技术布道师董龙飞和新浪的前端工程师董玉伟介绍了跨平台移动开发工具PhoneGap。

董龙飞对PhoneGap的来龙去脉做了总体的介绍,很多开发者已经使用HTML5、CSS3等最新技术做Web应用开发,也有不少开发者涉足移动开发,包括Android的Java编程、iOS的Obejct-C编程等。在2008年,旧金山,针对iPhone的开发者会议上,几位与会者希望通过JavaScript调用iPhone的本地特性,就在一天之内做了一个最基本的PhoneGap想法原型,并逐渐获得的社区的认可,扩展到了其他移动平台,如Android。后来,PhoneGap被Adobe收购,并被贡献给了Apache基金会,开始名为“CallBack”,后来改为“Cordova”,但两者不完全一样。Cordova是其中最核心的一部分,PhoneGap还包括了外部工具等。

借助PhoneGap,Web开发者可以把已有的Web应用打包成移动平台上的本地应用或者应用商店里的App,让用户直接下载安装,甚至支持BlackBerry、Windows Phone等应用格式。在开发移动应用时,开发者经常需要利用平台本身的一些特性,比如需要访问手机通讯录,或者GPS传感器信息等,PhoneGap提供了一些方便的JavaScript接口,帮助开发者直接调用移动平台的本地特性。不同的移动设备支持的特性并不相同,或者有时会遇到CPU密集性的技术需求,此时JavasSript代码并不合适,开发者可能想用本地的编程语言来写程序,然后再用JavaScript来调用,提高整个应用的性能。PhoneGap支持插件机制,开发者可以使用本地语言来编写程序,然后通过Javascript集成,由PhoneGap打包成App。总的来说,PhoneGap的特性包括:将HTML/JavaScript代码打包成本地App,帮助开发者部署到各种平台上,并提供了访问移动应用本地特性的接口,同时支持多语言混合的插件机制。

但PhoneGap不是JavaScript框架,开发者需要借助其他JS框架,Phone不提供IDE环境,由开发者自己选择。

如果想把Web应用打包成各种移动平台的App,开发者可以利用在线的PhoneGap Build,自动生成各种应用格式,并发布到移动平台的网上商店中。Phone Build针对开源免费的Web应用也是免费的。董龙飞还举例详细介绍了PhoneGap的内部实现机制和应用的调用方式。​

新浪高级工程师董玉伟则探讨了​PhoneGap插件扩展机制,他先后介绍了PhoneGap的插件实现原理、编程技巧等。

插件之间的通信通过postMessage和onMessage接口​来显示,在调用系统接口,设计到用户隐私数据时应该请求用户授权。

他还分享了自己的移动开发经验,包括:​启动时不要加载渲染大量html(使用JS渲染大数据更快);谨慎使用Scroll,等系统进化到支持Fixed定位。

​​​PhoneGap现已完全支持Windows Phone 7所有的原生功能,其支持力度达到了iOS与Android的水平。 ​

目前,PhoneGap API支持的功能包括:

  • Accelerometer——加速计是检测设备在当前方向上所做相对运动变化(增、减量)的运动传感器。加速计可以检测沿X、Y和Z轴的三维运动。加速度数据通过accelerometerSuccess回调函数返回。
  • Camera——选择使用摄像头拍照,或从设备相册中获取一张照片。图片以base64编码的字符串或图片URI形式返回。​
  • Compass——罗盘是一个检测设备方向或朝向的传感器,使用度作为衡量单位,取值范围从0度到359.99度。通过compassSuccess回调函数返回罗盘朝向数据。
  • Connection——Connection对象提供对设备的蜂窝及WiFi连接信息的访问。
  • Contacts——提供对设备通讯录数据库的访问。
  • Geolocation——Geolocation提供设备的位置信息,例如经度和纬度。位置信息的常见来源包括全球定位系统(GPS),以及通过诸如IP地址、RFID、WiFi和蓝牙的MAC地址、和GSM/CDMA手机ID的网络信号所做的推断。不能保证该API返回的是设备的真实位置信息。这个API是基于W3C Geo location API Specification实现的。有些设备已经提供了对该规范的实现,对于这些设备采用内置实现而非使用PhoneGap的实现。对于没有地理位置支持的设备,PhoneGap的实现应该是完全兼容W3C规范。
  • Storage——提供对设备的存储选项的访问。此API基于W3C WEB SQL Database Specification和W3C Web Storage API Specification。有些设备已经提供了对该规范的实现,对于这些设备采用内置实现而非使用PhoneGap的实现。对于没有存储支持的设备,PhoneGap的实现应该是完全兼容W3C规范。​

评价本文

专业度
风格

您好,朋友!

您需要 注册一个InfoQ账号 或者 才能进行评论。在您完成注册后还需要进行一些设置。

获得来自InfoQ的更多体验。

告诉我们您的想法

允许的HTML标签: a,b,br,blockquote,i,li,pre,u,ul,p

当有人回复此评论时请E-mail通知我
社区评论

允许的HTML标签: a,b,br,blockquote,i,li,pre,u,ul,p

当有人回复此评论时请E-mail通知我

允许的HTML标签: a,b,br,blockquote,i,li,pre,u,ul,p

当有人回复此评论时请E-mail通知我

讨论

登陆InfoQ,与你最关心的话题互动。


找回密码....

Follow

关注你最喜爱的话题和作者

快速浏览网站内你所感兴趣话题的精选内容。

Like

内容自由定制

选择想要阅读的主题和喜爱的作者定制自己的新闻源。

Notifications

获取更新

设置通知机制以获取内容更新对您而言是否重要

BT