`
zhangdaiping
  • 浏览: 129538 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

HTML5移动平台至支撑度与兼容性分析

 
阅读更多

 

1 未来平台及浏览器内核

1.1 三大移动平台

  • iOS 
  • Android 
  • Windows Phone 

1.2 四大浏览器内核

  • WebKit-based(WebKit)
  • Firefox(Gecko) 
  • Opera(Presto) 
  • Interner Explorer(Trident) 

WebKit是一个开源的浏览器布局引擎,它可以渲染HTML和CSS并且执行JavaScript。目前广泛应用于Safari, Chrome的移动版和桌面浏览器,包括Android系统自带的浏览器。Nokia手机上的Symbian系统从S40 6th开始采用基于WebKit内核的浏览器。不过各个WebKit-based浏览器在具体实现上也存在着差异。

 

2 主流移动浏览器

2.1 主流移动浏览器及平台

  • Safari on iOS (iPhone, iPad)
  • Android Browser (Android OS 2.x & 4.0, Tablets) 
  • Google Chrome (Android OS 4.0) 
  • BlackBerry Browser (BlackBerry OS) 
  • Nokia Browser (Symbian, MeeGo-N9) 
  • Internet Explorer (Windows Phone 7.5) 
  • Opera Mobile (Android & Symbian) 
  • Opera Mini (Java, iOS & Android) 
  • Firefox (Android OS) 
  • WebOS Browser (HP Phones) 
  • UC Browser (Multi-platform) 

 

2.2 2011.6-2012.6移动浏览器市场占比

 

2.3 2011.6-2012.6移动平台市场占比

 

3. HTML5, CSS3, Application API 兼容性表

针对目前主流的4种对HTML5,CSS3以及Application API支持较好的4种浏览器(Android Browser on Android OS, Safari on iOS, Firefox Mobile, Opera Mobile)做出兼容性对比表。从手机浏览器 HTML5 特性支持度得分上来看,Android 系统 4.0 上的 Chrome, 主流平台上的 Opera Mobile 12.00, Firefox Mobile 10 以及 iOS 设备上的 Safari 对 HTML5 支持程度最好。开发版的 Dolphin, BlackBerry 10, Tizen1 以及 iOS 6.0 上的 Safari 的支持度增加了不少。

 

3.1 HTML5 Features

 

3.2 CSS3 Features

 

3.3 Application APIs

 

4 Web App特性 

对于Web App来说,传统的Native App占有很大的优势,包括可靠性和稳定性,以及更多权限来访问设备的硬件或软件系统。因此诞生了PhoneGap,它起了封装和桥接的作用,PhoneGap提供的API分13个大类 (Accelerometer, Camera, Capture, Compass, Connection, Contact, Device, Events, File, Geolocation, Media, Notification, Storage),包括设备Ready事件,多任务,网络连通事件,电池事件,加速器,通讯录访问,录音和播放媒体,访问相机,网络连接状态,文件访问权限,定位,消息通知以及更稳定的本地储存等。以上特性虽然在在HTML5的规范中有一部分体现,但是大部分都在草案阶段,另一部分则还没有,有些接口只有个别浏览器有简单的实现,不过针对移动设备的诸多特性在以后的标准里面会逐步体现出来。 

以下列出几个HTML5特性的基本实例:

 

4.1 设备方位和运动相关事件 

当设备屏幕方位发生变化时触发该事件

window.addEventListener('orientationchange', function(event) { 
  alert(window.orientation || screen.orientation) 
}, false); 
window.addEventListener('deviceorientation', function(event) { 
  var a = event.alpha; 
  var b = event.beta; 
  var g = event.gamma; 
  console.log([a, b, c]); 
}, false); 
window.addEventListener('compassneedscalibration', function(event) { 
  alert('Your compass needs calibrating! Wave your device in a figure-eight motion'); 
  event.preventDefault(); 
}, false); 
window.addEventListener('devicemotion', function(event) { 
  // Process event.acceleration, event.accelerationIncludingGravity, 
  // event.rotationRate and event.interval 
}, false); 

 

4.2 网络连接类型 

可以通过 navigator.connection.type 判断当前网络连接类型,网络类型 type: unknown, ethernet, wifi, 2g, 3g, 4g, none.

function updateConnectionClass() { 
    var root = document.documentElement, 
        types = "unknown ethernet wifi 2g 3g 4g none".split(" "); 
    for (var i = 0, n = types.length; i < n; i++) { 
        root.classList.remove("network-" + types[i]); 
    } 
    root.classList.add("network-" + navigator.connection.type); 
} 
window.onload = window.ononline = window.onoffline = updateConnectionClass;

 

4.3 地理定位 

地理定位可以做天气或者地图等应用。

if (navigator.geolocation) { 
  navigator.geolocation.getCurrentPosition(function(position) { 
    var latLng = new google.maps.LatLng(position.coords.latitude, position.coords.longitude); 
    var marker = new google.maps.Marker({position: latLng, map: map}); 
    map.setCenter(latLng); 
  }, errorHandler); 
} 

 

4.4 离线应用 

清单文件 .manifest 
CACHE 指定离线资源的相对或绝对路径 
NETWORK 指定不能离线的资源 
FALLBACK 当应用离线运行时请求不能离线的资源时的情况处理 

指定缓存文件列表清单

CACHE MANIFEST 

CACHE: 
index.html 
icon.png 
app.js 
style.css 
/libs/sencha/sencha-touch.js 
/libs/sencha/resources/css/sencha-touch.css 

NETWORK: 
http://maps.google.com/ 
http://maps.googleapis.com/ 

FALLBACK: 
offline.html

 

在 <html> 元素添加属性 manifest="app.manifest" 
app.manifest 文件 MIME type 为 text/cache-manifest 
.htaccess file in Apache:

AddType text/cache-manifest .manifest 

 

4.5 客户端存储 

Web Stroage现在广泛应用于各个浏览器(包括WP7),很容易存储一些配置信息和偏好设置。 
Web SQL Database 虽然W3C标准不再维护此规范,但大多数浏览器都有很大程度的实现,且对于永久存储数据的WebApp来讲有很大的好处。可以考虑在实验性的项目中来使用。

var db = window.openDatabase("DBName", "1.0", "description", 5*1024*1024); 
db.transaction(function(tx) { 
  tx.executeSql("SELECT * FROM test", [], successCallback, errorCallback); 
});

 

4.6 触屏事件 

触屏相关的事件:

  • touchstart 单指接触屏幕时触发 
  • touchmove 单指在屏幕上移动时触发 
  • touchend 单指离开屏幕时触发 
  • touchcancel 取消跟踪时触发 
  • gesturestart 当2个或多个手指接触屏幕时手势事件开始 
  • gesturechange 当手势移动时触发 
  • gestureend 当手势结束时触发 

Touch Events 和 Gesture Events属于UI交互事件,主要针对有触摸感应能力的设备,在移动设备上触发的机会很多。 

 

4.7 动画 

1) Transitions

Transitions提供了简单的动画创建方式,CSS动画发生在当某个CSS属性发生变化时,需要提供几个参数:变化的属性,时间,函数和延迟。 

可以简单写为:

transition: [<transition-property> < transition-duration> < transition-timing-function> < transition-delay>[, < transition-property> < transition-duration> < transition-timing-function> < transition-delay>, …]]

  
2) Transforms
Transforms包括2D和3D的一些变换效果有两个基本属性,transform-origin 和 transform。transform-origin属性用来确定变换元素的基点位置(相对参考点),默认情况下在元素的中心位置,可以改变transfrom-origin属性来改变参考点,其单位可以为长度,百分比或关键字。Transform属性包含很多2D和3D的变换函数,可以对元素进行平移,旋转和缩放,这些函数包括: 

 

3) Animations

Animations 提供了更复杂的自定义动画,需要提供的参数: 名称,时间,函数,延迟,次数,方式,状态;定义关键帧

animation: [<animation-name> <animation-duration> <animation-timing-function> <animation-delay> <animation-iteration-count> <animation-direction> <animation-fill-mode>[, <animation-name> <animation-duration> <animation-timing-function> <animation-delay> <animation-iteration-count> <animation-direction> <animation-fill-mode>, …]]

此外可以为animation-play-state属性设置值为”paused”来停止动画,”running”可以继续执行动画,通过定义关键帧可以自定义更复杂的动画效果。

 

4) RequestAnimationFrame

RequestAnimationFrame是由JavaScript执行的动画,通过浏览器调度在合适的时间智能高效地重绘和渲染视图,因此可以跟少使用CPU,GPU,内存使用和电池电量。

window.requestAnimFrame = (function(){ 
  return window.requestAnimationFrame || 
      window.webkitRequestAnimationFrame || 
      window.mozRequestAnimationFrame || 
      window.oRequestAnimationFrame || 
      window.msRequestAnimationFrame || 
      function(callback) { 
        window.setTimeout(callback, 1000 / 60); 
      }; 
})();

 

4.8 其他 

一些值得尝试的特性,如语音输入 x-webkit-speech

<input type=”text” x-webkit-speech lang=”zh-CN” />

 

文档头部新增的很多有意义的 <meta> 和 <link>,这些标签可以很大程度增强用户体验,例如:

 

允许应用全屏模式运行,通常称为独立模式 (standalone mode) ,可以通过 window.navigator.standalone 属性来区别是否是独立模式运行

<meta name="apple-mobile-web-app-capable" content="yes" /> 

 

Web App在主屏显示的图标 (默认57x57)

<meta name="apple-touch-icon" href="icon.png" /> 

 

对不同的设备可以指定多个图标

<link rel="apple-touch-icon" sizes="72x72" href="touch-icon-ipad.png" /> 
<link rel="apple-touch-icon" sizes="114x114" href="touch-icon-iphone4.png" /> 

 

应用启动时显示的图像 (320x460)

<link rel="apple-touch-startup-image" href="default.png" /> 

 
遵循自适应设计(RWD, Responsive Web Design)的原则,页面呈现宽度适应屏幕

<meta name="viewport" content="width=device-width, initial-scale=1" /> 

 
通过 Media queries根据设备大小方向提供不同的样式规则

<link rel="stylesheet" media="screen, handled and (orientation:portrait)" href="portrait.css"> 
<link rel="stylesheet" media="screen, handled and (orientation:landscape)" href="landscape.css"> 

 

5 参考资料 

原创文章,转载请注明出处http://zhangdaiping.iteye.com

2
2
分享到:
评论

相关推荐

    web app和html5给前端带来的变化 - 我们的html5游戏平台之旅 共56页.pptx

    在移动设备上,HTML5的兼容性和性能问题尤为突出。例如,全屏显示、屏幕方向锁定、硬件访问和性能优化等方面,不同的设备和浏览器可能会有不同的表现。此外,移动支付的集成也是一个难题,因为用户可能不习惯在...

    HTML5构建Android少数民族文献数字化平台研究.pdf

    综上所述,HTML5在构建Android少数民族文献数字化平台时,不仅提供了强大的技术支撑,而且通过其先进的特性和跨平台兼容性,为少数民族文献的保护、传播和研究开辟了新的道路。通过这种方式,我们可以更有效地管理和...

    html5培训资料

    2. 音频和视频标签:和标签使得在网页中嵌入音频和视频内容变得简单,无需依赖第三方插件,大大提高了跨平台兼容性和用户体验。 3. Canvas和SVG:HTML5中的Canvas元素允许JavaScript动态绘制图形、图表、图像和动画...

    2013年移动互联网及第四代移动通信(TD-LTE)产业化专项附件1.pdf

    在移动智能终端新型应用系统研发及产业化方面,要求研发支持新型人机交互技术(如语音、体感、图像识别、生物识别)的应用引擎,与国内主要操作系统兼容,并在HTML5支持度、功能和性能上达到国际先进水平。...

    WEB_HTML5在LBS社区中的应用

    - **设备兼容性**:考虑到不同设备和操作系统的差异,需要进行相应的适配工作。 #### 结论 HTML5作为一种现代Web技术标准,在LBS社区中发挥着重要作用。它不仅提供了强大的功能集,还简化了跨平台应用的开发流程...

    HTML5拉杆子过关小游戏代码.zip

    HTML5小游戏的另一个关键方面是其跨平台兼容性。由于HTML5的广泛支持,这样的游戏可以在各种设备上运行,包括桌面电脑、智能手机和平板电脑,只需一个浏览器即可,无需安装额外的应用程序。这对于开发者来说意味着更...

    移动互联和-互联网+-教学实训平台解决方案.doc

    2. Web型开发:基于HTML5等Web技术开发,跨平台兼容,更新快速。 3. 混合型开发:结合原生和Web技术,兼顾性能和跨平台能力。 4. 统一型开发:力求通过统一的开发环境,简化多平台开发流程,提高开发效率。 四、“4...

    3D图片视差网页_html图片3d移动_3D图片视差网页_

    在实际项目中,开发人员需要考虑兼容性问题,因为并非所有浏览器都支持最新的HTML5和CSS3特性。因此,可能需要借助于polyfills(回退方案)或者像Modernizr这样的库来检测和处理不支持的浏览器。 总的来说,3D图片...

    基于油田生产数据的移动APP研究与应用.pdf

    在技术实现上,采用了HTML5+Native的混合开发技术,利用HTML5和JavaScript构建程序,封装在原生容器中,实现跨平台兼容性和高性能。数据采集安全保障通过统一数据交换模式,建立数据库链路,实现与其他应用系统的...

    对html和css效用精辟分析的网站链接

    3. **跨平台兼容性**:考虑到不同浏览器之间的差异,开发过程中需确保网页在多种环境下都能正常显示。 4. **持续学习进步**:Web技术日新月异,不断学习新技术、新框架对于保持竞争力至关重要。 #### 六、结语 综...

    H790_html网站模板_网页源码移动端前端_H5模板_自适应响应式源码.zip

    在当前互联网技术高速发展的时代,网站设计已经不再局限于简单的展示,而是追求更好的用户体验和多平台的兼容性。"H790_html网站模板_网页源码移动端前端_H5模板_自适应响应式源码.zip"这一资源包,就是针对这一需求...

    云南移动BOSS系统自动化业务处理软件

    用户在收到此文件时,应根据软件提供的指示执行更新,以确保软件的稳定性和兼容性,尤其是在BOSS系统进行更新或调整后,及时更新自动化工具显得尤为重要。 总之,【云南移动BOSS系统自动化业务处理软件】是针对电信...

    广州数字社区及移动政务方案

    终端技术需兼容多种设备,包括智能手机、平板电脑等,采用HTML5、CSS3等跨平台技术,确保良好的用户体验。 #### **服务器端技术的选择** 服务器端采用Java、Python等高性能编程语言,结合云计算、大数据等先进技术...

    html5后台管理模板.rar

    随着移动设备的普及,响应式设计变得至关重要。这款模板采用了媒体查询(Media Queries)和弹性布局(Flexbox 或 Grid),确保在不同屏幕尺寸的设备上都能呈现出良好的视觉效果。此外,触摸事件的支持也考虑到了触屏...

    马匹养殖场html5模板

    9. **兼容性**:马匹养殖场HTML5模板经过全面测试,确保在主流浏览器(如Chrome、Firefox、Safari、Edge等)上表现稳定,避免因浏览器差异导致的问题。 10. **源文件支持**:提供的“moban759”压缩包中,应包含了...

    基于HTML5+ssm+vue的OA办公系统.zip

    此外,标签中提及的“微信小程序”表明,本系统可能还考虑了移动端的应用场景,通过微信小程序接口,将OA办公系统接入微信,让员工能够在手机上随时随地处理工作事务,增强了办公系统的移动性和便捷性。 文件列表中...

    个人博客系统H5精美页面

    HTML5是超文本标记语言的最新版本,相较于之前的HTML4,它在语法上更加严谨且兼容性更强。HTML5引入了许多新特性,如离线存储(Offline Storage)、拖放功能(Drag and Drop)、媒体元素(Audio/Video)、 canvas...

    archive_ DM系统HTML5商务咨询服务公司网站模板 v1.7 [江西新余电信].zip.zip

    HTML5是现代网页开发的标准,具有更强的数据描述能力和更好的跨平台兼容性。在DM系统中,HTML5用于构建响应式布局,确保网站在不同设备(如台式机、平板电脑和手机)上都能自适应显示。此外,HTML5的多媒体支持使得...

    H1110_html网站模板_网页源码移动端前端_H5模板_自适应响应式源码.zip

    在当前互联网时代,网站设计与开发已经进入了全新的阶段,尤其是在移动端,一个优秀的网站模板不仅要美观,还需要具备良好的用户体验和跨平台的兼容性。"H1110_html网站模板_网页源码移动端前端_H5模板_自适应响应式...

Global site tag (gtag.js) - Google Analytics