如何实现html5页面,自动提示添加到主屏幕
本文原创自news.mkq.online
版权声明:本文为原创文章,版权牛站新闻所有
转载请注明http://www.niuzhan.com/Bago/
虽然没有能力开发Native App,但还是可以利用iOS中Safari浏览器的特性小小的折腾一下,做一个伪Web App满足下小小的虚荣心的。
既然是在iOS中的Safari折腾的,那么代码中利用到的也基本上都是Safari的私有属性。
添加图标到主屏幕是Web App的第一步:
http://blog.163.com/mengqing_dao/blog/icon-57.png'>
http://blog.163.com/mengqing_dao/blog/icon-72.png'>
http://blog.163.com/mengqing_dao/blog/icon-114.png'>
http://blog.163.com/mengqing_dao/blog/icon-144.png'>
添加图标到屏幕里的有两种属性值apple-touch-icon和apple-touch-icon-precomposed,区别就在于是否会应用iOS中自动给图标添加的那层高光。
由于iPhone以及iPad都有两种分辨率的设备存在,图标的尺寸就需要做4个:144×144(iPad Retina)、72×72(iPad)、114×114(iPhone Retina)、57×57(iPhone)。
可以使用sizes尺寸来告诉设备该调用哪个图标。
有了图标还不够像,还需要加上启动画面:
http://blog.163.com/mengqing_dao/blog/icon-1024x748.png' media=“screen and (min-device-width: 481px) and (max-device-width: 1024px) and (orientation:landscape)”>
http://blog.163.com/mengqing_dao/blog/icon-768x1004.png' media=“screen and (min-device-width: 481px) and (max-device-width: 1024px) and (orientation:portrait)”>
http://blog.163.com/mengqing_dao/blog/icon-640x920.png' media=“screen and (max-device-width: 480px) and (-webkit-min-device-pixel-ratio: 2)”>
http://blog.163.com/mengqing_dao/blog/icon-320x460.png' media=“screen and (max-device-width: 320)”>
apple-touch-startup-image是用来标示启动画面的,但它不像apple-touch-icon可以指定sizes来告诉设备该使用哪个图片(也有一种说法是在iOS5中已经支持sizes识别了,但没有测试成功),所以只能通过media里的设备分辨率的判断值来识别,而iPhone Retina的分辨率值界于取值之间,所以需要通过webkit的私有属性-webkit-min-device-pixel-ratio:2来鉴别像素密度以进行识别。
启动画面的图片尺寸并非完全等于设备的尺寸,比如iPad2的尺寸是1024×768,但它的启动画面尺寸横向是1024×748,竖向尺寸是 768×1004,因为需要减去系统状栏的高度20px,而使用的Retina屏幕的iPhone4以及iPad3则需要减去状态栏的高度40px。
Web App运行起来要像Native App,那么就要去掉Safari的一些默认控件,比如地址栏、状态栏之类的。
apple-mobile-web-app-capable是用来定义应用全屏展示的;在定义了apple-mobile-web-app- capable的前提下,设置状态栏的属性值apple-mobile-web-app-status-bar-style才有效;format- detection的值用于启用或禁用自动检测在网页中可能出现的电话号码;
viewport并非Safari的私有属性,width用于指定宽度,initial-scale指定初始化的缩略比例,minimum-scale指定缩小的比例,而maximum-scale则是放大的比例,当然这些缩放都取决于user-scalable——决定用户是否能缩放页面。
更正:
虽然New iPad采用了Retina屏幕,但实际上物理分辨率并没有变,还是1024*768的,所以以上代码中的New iPad的启动画面代码尺寸有误,应该是
http://blog.163.com/mengqing_dao/blog/icon-2048x1496.png' media=“screen and (min-device-width:481px) and (max-device-width:1024px) and (orientation:landscape) and (-webkit-min-device-pixel-ratio: 2)”>
http://blog.163.com/mengqing_dao/blog/icon-1536x2008.png' media=“screen and (min-device-width:481px) and (max-device-width:1024px) and (orientation:portrait) and (-webkit-min-device-pixel-ratio: 2)”>