12
03/2015
ios8 app
前言
ios 6 7 8 各种烂。前者对 click 尤其慢(有 300ms 的说法),用 touchstart 快,只是容易在 touchmove 的时候 也触发,过于敏感。
另外,对于 overflow:scroll 的处理 三者也方法混乱,各自不同。ios8 可能还有点人性。但 pdf 除非 独占窗口 否则 只能显示 第一页。
在 apple-mobile-web-app-capable 模式下,三者也是各领骚气。ios 6 的 a herf 会导致切换到 safari 打开。必须 location=”111”;return false;
js
//click on pc and touchstart on mobile var gsclick=((document.ontouchstart!==null)?'click':'touchstart');
/*
!!注意:这是 ios6 的写法,不能用于 ios8(导致iframe不能拖动)
关掉 touchstart
然后关掉 html {
-webkit-tap-highlight-color: rgba(0,0,0,0);
} ;
然后使用 :active
document.addEventListener("touchstart", function() {},false);
禁止 上下乱拖
document.ontouchmove = function(event){
event.preventDefault();
}
*/
各种 meta
<meta name="apple-mobile-web-app-capable" content="yes">加到主屏以后,全屏显示
<meta name="apple-mobile-web-app-title" content="iOS Web App">加到主屏时显示的标题
<meta name="apple-mobile-web-app-status-bar-style" content="black">头部状态栏显示方式 default, black, and black-translucent(ios6 7 各有不同效果)
<meta name="viewport" content="initial-scale=1">默认比例
<meta name="viewport" content="initial-scale=1,minimum-scale=1,maximum-scale=1">不允许用户放大缩小
<meta name="format-detection" content="telephone=no">
不予许 苹果自做聪明地 把一串数字修改为 tel:1234 的链接
万恶的程序图标
<!-- iPad retina icon -->
<link href="apple-touch-icon-precomposed-152.png"
sizes="152x152"
rel="apple-touch-icon-precomposed">
<!-- iPad retina icon (iOS < 7) -->
<link href="apple-touch-icon-precomposed-144.png"
sizes="144x144"
rel="apple-touch-icon-precomposed">
<!-- iPad non-retina icon -->
<link href="apple-touch-icon-precomposed-76.png"
sizes="76x76"
rel="apple-touch-icon-precomposed">
<!-- iPad non-retina icon (iOS < 7) -->
<link href="apple-touch-icon-precomposed-72.png"
sizes="72x72"
rel="apple-touch-icon-precomposed">
<!-- iPhone 6 Plus icon -->
<link href="apple-touch-icon-precomposed-180.png"
sizes="120x120"
rel="apple-touch-icon-precomposed">
<!-- iPhone retina icon (iOS < 7) -->
<link href="apple-touch-icon-precomposed-114.png"
sizes="114x114"
rel="apple-touch-icon-precomposed">
<!-- iPhone non-retina icon (iOS < 7) -->
<link href="apple-touch-icon-precomposed-57.png"
sizes="57x57"
rel="apple-touch-icon-precomposed">
- 152x152 (76@2x) for iPad retina on iOS 7+
- 144x144 (72@2x) for iPad retina on iOS 6
- 76x76 for iPad on iOS 7+
- 72x72 for iPad on iOS 6
- 180x180 (60@3x) for iPhone 6 Plus
- 144x144 (57@2x) for iPhone retina on iOS 6
- 57x57 for iPhone on iOS 6
如果没有上面的 meta 标签,苹果会按照下面的顺序寻找
- /apple-touch-icon-180x180-precomposed.png
- /apple-touch-icon-180x180.png
- /apple-touch-icon-precomposed.png
- /apple-touch-icon.png
更加万恶的启动画面(splash)
<!-- iPad retina portrait startup image -->
<link href="apple-touch-startup-image-1536x2008.png"
media="(device-width: 768px) and (device-height: 1024px)
and (-webkit-device-pixel-ratio: 2)
and (orientation: portrait)"
rel="apple-touch-startup-image">
<!-- iPad retina landscape startup image -->
<link href="apple-touch-startup-image-1496x2048.png"
media="(device-width: 768px) and (device-height: 1024px)
and (-webkit-device-pixel-ratio: 2)
and (orientation: landscape)"
rel="apple-touch-startup-image">
<!-- iPad non-retina portrait startup image -->
<link href="apple-touch-startup-image-768x1004.png"
media="(device-width: 768px) and (device-height: 1024px)
and (-webkit-device-pixel-ratio: 1)
and (orientation: portrait)"
rel="apple-touch-startup-image">
<!-- iPad non-retina landscape startup image -->
<link href="apple-touch-startup-image-748x1024.png"
media="(device-width: 768px) and (device-height: 1024px)
and (-webkit-device-pixel-ratio: 1)
and (orientation: landscape)"
rel="apple-touch-startup-image">
<!-- iPhone 6 Plus portrait startup image -->
<link href="apple-touch-startup-image-1242x2148.png"
media="(device-width: 414px) and (device-height: 736px)
and (-webkit-device-pixel-ratio: 3)
and (orientation: portrait)"
rel="apple-touch-startup-image">
<!-- iPhone 6 Plus landscape startup image -->
<link href="apple-touch-startup-image-1182x2208.png"
media="(device-width: 414px) and (device-height: 736px)
and (-webkit-device-pixel-ratio: 3)
and (orientation: landscape)"
rel="apple-touch-startup-image">
<!-- iPhone 6 startup image -->
<link href="apple-touch-startup-image-750x1294.png"
media="(device-width: 375px) and (device-height: 667px)
and (-webkit-device-pixel-ratio: 2)"
rel="apple-touch-startup-image">
<!-- iPhone 5 startup image -->
<link href="apple-touch-startup-image-640x1096.png"
media="(device-width: 320px) and (device-height: 568px)
and (-webkit-device-pixel-ratio: 2)"
rel="apple-touch-startup-image">
<!-- iPhone < 5 retina startup image -->
<link href="apple-touch-startup-image-640x920.png"
media="(device-width: 320px) and (device-height: 480px)
and (-webkit-device-pixel-ratio: 2)"
rel="apple-touch-startup-image">
<!-- iPhone < 5 non-retina startup image -->
<link href="apple-touch-startup-image-320x460.png"
media="(device-width: 320px) and (device-height: 480px)
and (-webkit-device-pixel-ratio: 1)"
rel="apple-touch-startup-image">
- 1536x2008 (768x1004@2x) for iPad retina portrait
- 1496x2048 (748x1024@2x) for iPad retina landscape
- 768x1004 for iPad portrait
- 748x1024 for iPad landscape
- 1242x2148 (414x716@3x) for iPhone 6 Plus portrait
- 1182x2208 (394x736@3x) for iPhone 6 Plus landscape
- 750x1294 (375x647@2x) for iPhone 6
- 640x1096 (320x548@2x) for iPhone 5
- 640x920 (320x460@2x) for iPhone retina
- 320x460 for iPhone