webApp添加到iOS桌面
iOS中的safri浏览器可以将一个网页添加到桌面,当做一个独立的应用运行。
当然,这里我们不讨论怎么去做一个webApp,这需要html5的相关知识和开发经验。
这里我们只讲webApp添加桌面后到启动的相关细节。
全屏显示:
<meta name="apple-mobile-web-app-capable" content="yes" />
系统顶栏的颜色(黑色和白色):
<meta name="apple-mobile-app-status-bar-style" content="white" />
<meta name="apple-mobile-app-status-bar-style" content="black" />
桌面程图标(如果不设置,则图标会显示网页的截图:
<link rel="apple-touch-icon" href="icon.png" />
但是,iOS会自作多情的给这个图标加上高光,如果想图标不被高光,可以这样:
<link rel="apple-touch-icon-precomposed" href="icon.png" />
如果想给不同的设备匹配不同的icon,可以加上size属性:
<link rel="apple-touch-icon" size="72x72" href="icon-ipad.png" />
<link rel="apple-touch-icon" size="114x114" href="icon-iphone4.png" />
程序启动的过程中,需要指定启动画面,否则,白屏或者截图是让人很不愉悦的。
iOS有ipad和iPhone/ipod touch之分。
ipad的启动画面是横竖屏分开的,画面的尺寸必须是1024*768、768*1024。
iPhone和ipod touch虽然都是竖屏的,但是却有Retina屏幕和非Retina屏幕之分;另外它们启动画面的尺寸并不是屏幕的大小,而是(屏幕宽度)*(屏幕高度-20)。也就是说,非Retina的尺寸为320*460,Retina屏幕的尺寸为640*920。
引入启动画面是支持媒体查询的。
因此,可以通过media query给ipad的横竖屏引入不同的图:
<link rel="apple-touch-start-image" href="landScape.png" madia="screen and (min-device-width:481px) and (max-device-width:1024px) and (orientation:landscape)" />
<link rel="apple-touch-start-image" href="portait.png" madia="screen and (min-device-width:481px) and (max-device-width:1024px) and (orientation:portait)" />
但是媒体查询却搞不定Retina屏幕,所以通过js来hack:
首先,给普通的分辨率引入320*460的图片:
<link rel="apple-touch-start-image" href="start.png"media="screen and (max-device-weidth:320px)" />
Retina屏幕js:
if((app.device.type === "iPhone" || app.device.type === "iPod")
&& app.device.version >= '5'
&& window.devicePixelRatio >= 2){
$('head').append($('<link rel="apple-touch-startup-image" href="start-640-920.png" />'));
}
webApp添加到iOS桌面的更多相关文章
- iOS桌面小插件 Widget Extension
iOS桌面小插件 Widget Extension 这个插件时iOS14以后才出现的,基于SwiftUI 旧项目新建时可能一堆错误,其中一个时要把插件target 开发sdk版本设置为14.0以上 新 ...
- iOS-C文件添加到iOS项目中,运行报错
iOS-C文件添加到iOS项目中,运行报错 问题: 往项目中添加一个空的c文件, 编译运行; 出现2,30个编译错误. 原因: 由于在项目中添加了Pch文件,在文件中所有代码还没有开始运行之前, pc ...
- iOS 把图片从Mac本地添加到iOS Simulator中
[把图片从Mac本地添加到iOS Simulator中] 1. 把图片从Mac本机拖动到iOS Simulator中: 2. iOS Simulator会自动打开Safari去打开对应的图片,然后你用 ...
- 如何将程序添加到Windows桌面右键菜单
在Windows桌面上右键单击鼠标时,将显示默认菜单.如果您想要将其它程序添加到Windows桌面右键菜单中,则可以按照以下步骤执行: 运行WinUtilities上下文菜单管理器 点击添加 选择菜单 ...
- Linux安装pycharm并添加图标到桌面
安装: 1.到pycharm官网下载Linux版本的pycharm包. 2.打开中端 cd到下载的文件夹,默认为 ~/Downloads/ 文件夹下 3.执行命令 tar -xvzf pycharm- ...
- Android 实现高仿iOS桌面效果之可拖动的GridView(上)
转载请标明出处:http://blog.csdn.net/sk719887916/article/details/40074663,作者:skay 最近项目中遇到一个LIstview的拖动效 ...
- PickerController 添加照片---iOS
前言 添加照片我们常用的地方有,更换头像,发布状态,朋友圈的时候等等,那我们接下来看看怎么添加上照片吧~ github: 效果图: 正文 1.你可以直接写,也可以声明一个属性.我习惯声明一个属性. @ ...
- centos7添加图像化桌面并设置中文
我前面是使用的centos6.最近才最小化安装了一个centos7.4(最小化安装有很多命令都没有,所以不建议这样干).完了装了图形化界面和设置中文,感觉和centos6有些区别,所以记录一下过程. ...
- 模仿添加QQ好友桌面快捷方式
/** * * @param context * @param tname 桌面快捷方式的名字 * @param icon 好友头像 */ public static void addShortCut ...
随机推荐
- 需要MARK一下,奇怪的ANDROID SDK自带的APK加密功能的问题
花了两天时间,各种调试APP,发现问题不在于代码. 在于用了SDK里的加密,导致运行其中一个多线程中的ACTIVITY, 就会黑屏,返回按钮也没用. 发现这个问题的思路是因为,我发现连手机直接调试,一 ...
- Android报错:The content of the adapter has changed...与Channel is unrecoverably broken and will be disposed的分析与解决办法
在Android中adapter错误: The content of the adapter has changed but ListView did not receive a notificati ...
- 转:SqlServer2008误操作数据(delete或者update)后恢复数据
Sqlserver2008误操作数据(delete或者update)后恢复数据(转) 实际工作中,有时会直接在数据库中操作数据,比如对数据进行delete或者update操作,当进行这些操作的时候,如 ...
- Agile.Net 组件式开发平台 - 数据访问组件
Agile.DataAccess.dll 文件为系统平台数据访问支持库,基于FluentData扩展重写,提供高效的性能与风格简洁的API,支持多种主流数据库访问. 当前市面上的 ORM 框架,如 E ...
- sql server 2008 查询语句的红色波浪线
在 Microsoft sql server management studio 里点击“编辑”——“IntelliSense”——“刷新本地缓存” 就会发现红色波浪线没了(前提是你的代码没错)
- Android知识思维导图
注:图片来源于网络,谢谢分享. 一. 项目目录结构: 布局控件 ListVIew控件 Widget:(窗口小部件) Activity Manager 二. 应用程序的5个模块构成: Activit ...
- 服务器发布WebService返回DataTable
初始化Datatable时,需要为Datatable命名.否则在客户端使用时,会报“datatable不能序列化...”导致表格无法从服务器端读取到. 例如: 服务器端: DataTable dt = ...
- excl剔除不合格数据求平均值
excl剔除不合格数据求平均值 trimmean函数 正态分布: CONFIDENCE.NORM 函数
- linux gcc 和 g++ 编译
gcc编译 gcc -o test.out test.c g++ 编译 g++ -o test.out test.cpp
- netty启动过程
netty先启动work线程,work线程打开selector 绑定pipeline 启动boss线程,绑定端口,注册selector,绑定op_accetp事件 ------------------ ...