STAY HUNGRY , STAY FOOLISH.

求知若饥,虚心若愚。

       浏览:

Cordova App之HTML5的坑

使用HTML5,请仔细考虑

当你想用HTML5进行Android和IOS开发的时候,一定要记住IOS上面的性能绝对比Andoird上面好,因此在进行测试的时候,一定要选择一个安卓机。还要记住一句话,HTML5的支持要靠不同厂家WebView的配合,但是现在厂商配合的也都千奇百怪!
当自己满怀信心的去做App时,被第一个需求就坑了一个星期,重点坑的地方不是代码本身,而是HTML5的兼容。


第一个需求:用画布画视频当背景

用英语来说就是use canvas darw video for backgroud.
为什么我想这样做呢?
因为我想做一款App产品与其他的产品不同。当你随便进入一款App的时候,首先会有一个首页,当数据加载后,首页消失,进入主页UI,这就是所有App的特点。而我之前的想法是进入App首先还是会有一个首页,当数据加载后,首页消失,进入主页后视频画面就是App的背景。

为什么必须要用画布画视频当背景这种方式来实现呢?
因为做App时需要考虑的不仅仅是设备的系统,还包括设备的分辨率、尺寸等,如果直接用Video当背景就不能适配所有设备;如果直接用canvas当背景,用代码自己画确实也行,但我美术功底确实很Low,算术很久没碰,于是乎果断放弃。

好了,在我看来唯一能很好解决这个问题的就是使用Canvas循环画出Video里面的内容,且让Video循环播放。接下来说下自己遇到了哪些坑让我不得不放弃这个需求:

  1. Video标签在IOS WebView上使用muted属性来控制音量静音无效
  2. Video标签在Android WebView上使用autoplay属性来自动播放无效
  3. Canvas标签在Android WebView上使用drawImage方法画视频无效
  4. IOS设备上Home主页与应用主页来回切换出现闪退

上面四个坑我解决了三个,还差一个,怎么解决的没时间细说,等以后有空在讲解。那放弃这个需求的真正原因是什么呢?因为麻烦,且W3C规范对各种设备的不兼容,尽管在caniuse.com上看到HTML5的哪些标签能支持哪些平台,即使解决了平台的兼容性,但是在不同平台上使用每个标签的每个属性的兼容性还是不确定,W3C还有很长的路要走。