iOS / Android 移动设备中的 Touch Icons
上次转载了一篇《将你的网站打造成一个iOS Web App》,但偶然发现这篇文章的内容有些是错误的——准确来说也不是错误,只是不适合自半年前来的情况了(也可以说是iOS7 之后的时间)——话说现在的的移动设备真是日新月异。好了,结合Jeff 查阅的资料,下面来详细来说说iOS / Android 移动设备中的 touch icons。
关于 “Touch icons”
favicons 知道是什么吧?浏览器的tab 前面的那个小图标,放入某个网站到收藏夹的时候也会看到,这个可以说是pc 互联网的产物了。而Touch icons 则是移动互联网的产物,用于手机、平板等移动设备上。为你的网站添加个Touch icons 可以用类似下面的代码:
1 |
<link rel="apple-touch-icon" href="apple-touch-icon.png"> |
这个只是基础的演示代码,一般我们不这么用。在深入讲解之前先再给出另外一行代码:
1 |
<link rel="icon" sizes="196x196" href="apple-touch-icon.png"> |
上面这个是则有点不同,rel="icon",可喜的是,Chrome v31+ for Android 以上的版本支持这个;但遗憾的是,苹果的设备不支持这个。
考虑到最大的兼容性,Chrome for Android 做了一定的牺牲,那就是,如果再你的网页上找不到上面的代码,就会向下兼容,跟随者苹果的设备支持的touch icons(类似一开头的代码)。
Fancy effects
也许你看到过这么两种代码:
1 |
<link rel="apple-touch-icon" href="apple-touch-icon.png"> |
那么,多出来的precomposed 表示神马意思呢?没有precomposed 代码,一些包括圆角,阴影,反光的特效便会自动添加到生成的本地app 的logo 中。是自iOS 2.0 开始的,但如今随着iOS7 的出现,已经变得可有可无了。
不同的Touch icons 尺寸
(接下来讲的基本上是apple 的设备)考虑到不同设备的分辨率以及屏幕材质的问题,为了最佳的显示体验,你可以用sizes标签定义下,如:
1 |
<link rel="apple-touch-icon-precomposed" sizes="72x72" href="apple-touch-icon-72x72-precomposed.png"> |
在apple 开发者官网中,为不同的apple 设备推荐了相应的size,比如:
iPad with Retina:144 × 144 pixels 152 × 152 pixels
iPhone with Retina:114 × 114 pixels 120 × 120 pixels
为什么有个删除线的?114、144的像素比是之前的,随着iOS7 出来后,官方推荐size 变成120、152的。单独考虑apple
的设备,iphone 有无Retina 的,ipad有无Retina 的,ipadmini有无Retina 的皆要一一考虑,还有不同的iOS
版本…… 一句话,挺烦了,国外有人给出了下面的比较涵盖、兼容的代码(直接看注释吧):
1 |
<!-- For non-Retina iPhone, iPod Touch, and Android 2.1+ devices: --> |
有些人还考虑到iOS 4.2 之前的版本不支持size 标签,所以sizes 标签应该去掉,对此,我认为没必要。
后记
上面的内容大部分是翻译http://mathiasbynens.be/notes/touch-icons 这篇e 文的,翻译的过程中加入了自己的理解。当然,以我英文的水平,不敢担保有没有曲解原文或者有大错误,如有,望指正。
话说就为了这么个东西就要写那么多代码,连图片也要ps 好几个,真心累人。我说,代码是死的,而且不是每个人都用apple 的设备的,确实是没有必要过于考虑完全——不然累的是自己。其实原文还有一些内容的,但这篇文章就这样结束了。
iOS / Android 移动设备中的 Touch Icons的更多相关文章
- iPhone, Android等设备上的Touch和Gesture
现在,为智能触摸手机创建直观的用户界面时,最重要的部分不再是单纯的视觉效果,而是要创建出能很好地处理用户触摸交互的界面.对于Web应用而言,这意味着使用touch事件来取代传统的mouse事件.在Do ...
- 真机调试方法- IOS/Android移动设备
真机调试 调试安卓 方法一 开启手机的USB调试 安装运行项目 使用chrome步骤如下图 打开开发者工具 打开设备管理 选择设备进行debug 方法二: 直接在地址栏输入chrome://inspe ...
- Ionic中使用Chart.js进行图表展示以及在iOS/Android中的性能差异
Angular Chart 简介 在之前的文章中介绍了使用 Ionic 开发跨平台(iOS & Android)应用中遇到的一些问题的解决方案. 在更新0.1.3版本的过程中遇到了需要使用图表 ...
- 微软云平台媒体服务实践系列 1- 使用静态封装为iOS, Android 设备实现点播(VoD)方案
微软的云平台媒体服务为流媒体服务提供了多种选择,在使用流媒体服务为企业做流媒体方案时,首先需要确认要流媒体接收目标,如针对广大iOS, Android移动设备,由于它们都支持HLS 格式的流媒体,基于 ...
- 微软云平台媒体服务实践系列 2- 使用动态封装为iOS, Android , Windows 等多平台提供视频点播(VoD)方案
文章微软云平台媒体服务实践系列 1- 使用静态封装为iOS, Android 设备实现点播(VoD)方案 介绍了如何针对少数iOS, Android 客户端的场景,出于节约成本的目的使用媒体服务的静 ...
- Unity3d 在不同设备中的文件读写 的路径
Application.dataPath : 数据路径 Unity Editor: <path tp project folder>/Assets Unity 编辑器:<工程文件 ...
- Android中处理Touch Icon的方案
苹果的Touch Icon相对我们都比较熟悉,是苹果为了支持网络应用(或者说网页)添加到桌面需要的图标,有了这些Touch Icon的网页链接更加和Native应用更相像了.由于苹果设备IPod,IP ...
- 分享 Ionic 开发 Hybrid App 中遇到的问题以及后期发布 iOS/Android 的方方面面
此篇文章主要整理了最近在使用 Ionic 开发 Hybrid App 过程中遇到的一些疑难点以及后期发布生成 iOS 和 Android 版本过程中的种种问题. 文章目录 Ionic 简介和项目需求介 ...
- WebSocket学习笔记IE,IOS,Android等设备的兼容性问
WebSocket学习笔记IE,IOS,Android等设备的兼容性问 一.背景 公司最近准备将一套产品放到Andriod和IOS上面去,为了统一应用的开发方式,决定用各平台APP嵌套一个HTML5浏 ...
随机推荐
- AngularJS 日期转换字符串
日期转换成字符串的办法有很多种,其中最简单的方法是 使用AngularJS的filter来实现. $filter('date')(date, 'yyyyMM'): $filter('date')(da ...
- SpringMVC学习--拦截器
简介 Spring Web MVC 的处理器拦截器类似于Servlet 开发中的过滤器Filter,用于对处理器进行预处理和后处理. 拦截器定义 定义拦截器,实现HandlerInterceptor接 ...
- Java设计模式(一) 策略模式
策略模式:定义了算法族,分别封装起来,让它们之间可以互相替换,此模式让算法的变化独立于使用算法的客户. 1,定义算法接口 package com.pattern.strategy.test; publ ...
- ArcGIS 帮助(10.2、10.2.1 和 10.2.2)收集
帮助首页 [Oracle基础] 快速浏览:Oracle 地理数据库 什么是 Oracle Spatial? 设置到 Oracle 的连接 存储在 Oracle 地理数据库中的系统表 结合企业级地理数据 ...
- 安全框架 SpringSecurity 和 Shiro 对比
突然再次很想理一下权限的事,但是实在不知道实际情况选哪个框架好,现在整理下网上的资料,做一下对比. 1.Spring-security 对spring 结合较好,如果项目用的springmvc ,使用 ...
- lucene-查询query->RangeQuery在某一范围内搜索
有时用户会需要一种在一个范围内查找某个文档,比如查找某一时间段内的所有文档,此时,Lucene提供了一种名为RangeQuery的类来满足这种需求. RangeQuery表示在某范围内的搜索条件,实现 ...
- ON DUPLICATE KEY UPDATE
如果在INSERT语句末尾指定了ON DUPLICATE KEY UPDATE,并且插入行后会导致在一个UNIQUE索引或PRIMARY KEY中出现重复值,则在出现重复值的行执行UPDATE: 如果 ...
- c# 监听文件夹动作
static FileSystemWatcher watcher = new FileSystemWatcher(); /// <summary> /// 初始化监听 ...
- [bzoj1009][HNOI2008]GT考试
Description 阿申准备报名参加考试,准考证号为位数,他不希望准考证号上出现不吉利的数字. 他的不吉利数学有位,不出现是指中没有恰好一段等于. 可以为. Input 第一行输入.接下来一行输入 ...
- 【BZOJ-2177】曼哈顿最小生成树 Kruskal + 树状数组
2177: 曼哈顿最小生成树 Time Limit: 10 Sec Memory Limit: 259 MBSubmit: 190 Solved: 77[Submit][Status][Discu ...