LayaAir引擎率先支持微信应用号,揭底微信小程序开发!

在今年1月11日举行的微信公开课上,张小龙首次提及微信应用号。直到9月22日凌晨,微信公众平台正式对外发送小程序内测邀请,小程序即被外界广为关注的微信“应用号”。一时间成为舆论热点,其中不乏H5 APP时代会取代原生 APP的声音,真的是这样吗?

9月23日,经过LayaAir引擎团队的彻夜奋战,LayaAir引擎率先完成对微信小程序的开发支持,并在此将支持工作过程中遇到的问题和认知总结成文,希望能够帮助您更多的了解微信小程序。

图片1.jpg

微信应用号小程序内测邀请函

应用号小程序不等于HTML5

在获知微信应用号开始内测后,众多不明真相的观众,纷纷认为是基于HTML5协议标准的HTML5小程序。其实不然,微信目前支持的开发框架是模拟了HTML5的一些协议标准,比如支持画布,支持CSS和一些类HTML协议。

尽管微信小程序并不是标准HTML5,但框架内包含了小程序开发的常用组件和设备支持。开发语言方面,小程序是采用JS去控制组件行为和产品的逻辑实现。如果采用LayaAir引擎开发应用号小程序,除了用JS开发,还可以使用AS3或TS语言。

微信小程序开发框架存在的不足

由于目前还处于小规模测试期,仅受邀请企业可以参与测试,所以在测试阶段,小程序开发框架仍存一些不太成熟的地方。在LayaAir引擎支持的过程中发现,微信小程序提供的框架还有很多重要的接口不支持,并存在明显BUG,比如不支持文件下载和http访问,在用画布绘制多个图片时只显示一个,矢量图和位图混合渲染时会闪烁等。

在性能方面,为了提高应用的性能和体验,框架的组件可能会调用操作系统原生组件。然而canvas实现还是会存在性能和drawImage等关键功能不完善的问题。再加上没有提供可视化设计工具和产品模板,所以相对复杂的视觉动画效果制作比较麻烦或是无法实现。

从目前功能来看,正如其命名那样,“小程序”的开发问题不太大。相对深度或复杂一些的程序是较难或无法实现的。然而微信小程序在丰富视觉体验、互动教育、广告营销方面还是存在广阔的需求。尤其是在框架中支持了部分的画布功能,给LayaBox这样的专业引擎厂商提供了发挥空间和舞台。经过连夜的奋战,LayaAir引擎不仅支持了微信应用号小程序的开发,还制作了一个粒子效果的小程序DEMO。

图片2.gif

LayaAir引擎开发的粒子效果微信小程序DEMO

微信小程序开发支持的内容

微信小程序虽然没有直接采用HTML5的标准,测试阶段也还需要继续完善和成熟。但从框架提供的接口来看,已有充分的准备,能满足小程序开发的基本需求。这些服务和支撑包括以下方面:

  • 视图容器:视图(View)、滚动视图、Swiper

  • 基础内容:图标、文本、进度条

  • 表单组件:按钮、表单等等

  • 操作反馈

  • 导航

  • 媒体组件:音频、图片、视频

  • 地图位置服务

  • 画布

  • 文件操作能力

  • 网络:上传下载能力、WebSocket

  • 数据:数据缓存能力

  • 位置:获取位置、查看位置

  • 设备:网络状态、系统信息、重力感应、罗盘

  • 界面:设置导航条、导航、动画、绘图等等

  • 开放接口:登录,包括签名加密,用户信息、微信支付、模板消息

LayaAir引擎与微信小程序开发的结合

LayaAir引擎之所以能快速支持微信小程序的开发,得益于小程序框架支持画布模式,实现了画布的常规功能。而LayaAir的设计是基于画布和WebGL的,遗憾的是微信小程序还不支持WebGL,否则引擎发挥的空间更大,比如3D展示与性能提速方面。

LayaAir引擎在与微信小程序框架结合后,不仅从JS单一开发到支持JS、TS、AS3三种语言的开发,还极大的拓展了应用的视觉效果和工具集,降低了开发门槛。开发者可以通过Flash、Unity3D、Spine、LayaAir IDE等编辑工具设计丰富多彩的视觉效果,极大提高产品研发速度和视觉品质。

在微信应用号中,LayaAir引擎目前主要用于扩展小程序表现,提升应用的互动和视觉表现,可用于广告、营销、互动教育等应用开发。