h5移动端跨平台应用开发是个有趣的话题。纵观该领域目前各个开发商提供的多种方案,大致可以分为三大类:
基于HTML5的方案。该方案以PhoneGap/Cordova为代表。其基本思路是针对HTML5标准目前功能上的不足,补充定义了一套比较实用的API(比如硬件访问/系统交互等),然后基于平台上自带的Web引擎(比如iOS的UIWebview等),通过扩展机制实现了这些API,在此基础上再提供一套应用打包部署系统。Intel的XDK也属于此类方案。
将Native API映射封装成统一语言的API的方案。该方案以Titanium、Xamarin为代表,其中Titanium提供JavaScript API,Xamarin提供C# API。这样的好处是可以较容易达到和Native API类似的能力,模型/方式也和原生应用相似。
有行业针对性的HTML5 API方案。比如Ludei的CocoonJS就是一个比较有意思的方案,它设计了一套专门针对2D/3D的API(支持iOS和Android)。可以认为它是HTML5图形操作的子集(Canvas +WebGL),再加上一些扩展的API比如硬件访问能力/广告/应用内购买/社交网络整合等,以实现一个完整的游戏引擎。