阅读更多

4顶
0踩

移动开发

转载新闻 iPhone 5/iOS 6 前端开发指南

2012-09-28 16:02 by 副主编 MnouW 评论(1) 有15962人浏览
iPhone 5和iOS 6已经发布好几天了,相信很多童鞋都已经刷上了iOS 6。实际上iOS 6支持还有哪些新功能?让我们一起看下。

iPhone首先屏幕变长了,分辨率从iPhone 4s的640px*960变成了640*1136,长宽比变成了16:9。DPI依然是326。其它表现看起来是一样的。

检测iPhone 5/iOS 6

检测iOS 6很简单,用ua就可以了:

Mozilla/5.0 (iPhone; CPU iPhone OS 6_0 like Mac OS X) AppleWebKit/536.26 (KHTML, like Gecko) Version/6.0 Mobile/10A403 Safari/8536.25

但是刷了iOS 6的所有iPhone的ua都是这个,那么判断是否是iPhone 5就要用js或者media query的方法了:

isPhone4inches = (window.screen.height==568);

@media (device-height: 568px) and (-webkit-min-device-pixel-ratio: 2) {
/* iPhone 5 or iPod Touch 5th generation */
}

主屏幕web app

如果你之前通过apple-mobile-web-app-capable这个meta标签来将网页添加到主屏幕的话,这种方法只支持iPhone 的3.5″屏幕,而iPhone 5会比较悲催。

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

iPhone 5下的表现:


即便你提供了一个大尺寸的启动界面(640*1096),iPhone 5依然会将其压缩至640*920。

解决方案:

你需要放弃之前使用的viewport属性width=device-width或者width=320。如果你不指定viewport,它也可以很正常的显示:

<meta name="viewport" content="initial-scale=1.0">

或者你也可以指定一个非320的宽度:

<meta name="viewport" content="width=320.1">

如果你不想影响iPhone 4s以前的safari,也可以用js动态设置viewport:

if (window.screen.height==568) { // iPhone 4"
document.querySelector("meta[name=viewport]").content="width=320.1";
}

对于启动画面,可以用media query来调整:

<link href="startup-568h.png" rel="apple-touch-startup-image" media="(device-height: 568px)">
<link href="startup.png" rel="apple-touch-startup-image" sizes="640x920" media="(device-height: 480px)">

主屏webapp默认标题:

可以通过meta标签来给主屏webapp指定标题:

<meta name="apple-mobile-web-app-title" content="前端观察">

HTML5支持

file api

现在可以简单的支持文件上传了,同时也支持多文件上传:

<input type="file"><!--单文件-->
<input type="file" multiple><!--多文件-->

但是,由于iOS的资源管理机制的限制,你只能上传照片和视频,不能上传其它格式文件,也不支持getUserMedia api(camera api)。

Audio api

这个不解释了。

smart app banner

如果你的网站同时提供的有app在itunes app store,可以通过一个简单的meta标签来提示用户,让用户下载安装你的native app(或者是hybrid app):

<meta name="apple-itunes-app" content="app-id=9999999">

也支持itunes affiliate program(推广联盟):

<meta name="apple-itunes-app" content="app-id=9999999, app-argument=xxxxxx">
<meta name="apple-itunes-app" content="app-id=9999999, app-argument=xxxxxx, affiliate-data=partnerId=99&siteID=XXXX">

需要注意的是,app banner占位为156px的高度——高分屏为312px。



CSS3 Filter

这个不解释了,不清楚的请阅读《-webkit-filter是神马?》

Safari 全屏

这个很赞,有些像 Mac OS X 的全屏方法,但是只支持横屏的场景。



点击右下角的icon即可全屏:



animation timing api

这个对游戏开发者非常有用,详情可访问Animation Timing API,也可以看下Paul Irish的这个教程

CSS image set

这个很赞,就是你可以为css 选择器指定多个特定的图片,用于区分高分屏和非高分屏:

-webkit-image-set(url(low.png) 1x, url(hi.jpg) 2x)

可以支持background-image之类的属性。

这个是webkit私有属性,其它浏览器不支持。希望os x下也开始支持吧,这样就不用 background-size来区分视网膜屏了。

CSS 3 cross-fade

iOS 6支持一些最新的CSS3 image values标准,包括cross-fade。这样我们可以在同一个选择器上使用多张图片,以实现半透明或者动画的效果:

background-image: -webkit-cross-fade(url("logo1.png"), url("logo2.png"), 50%);

Web View更新:

需要注意的是,webview中的javascript速度,比nitro引擎的Safari慢3.3倍。

嗯,上面说的hybrid模式就是用webview组件封装的webapp,phonegap之类的第三方开发工具既是这种模式。

同步调试

iOS 6中Safari和webview,支持用桌面Safari同步调试了。方法很简单:

  1. 手机上设置Safari开启 web inspector(设置–>safari–>高级)
  2. 手机连上电脑
  3. 打开电脑上的Safari,然后菜单–》开发,即可看到设备。点击即可调试。
然后你就可以看到safari 6的调试器:



总结

这个版本的iOS中的safari提升还是很多的,特别是同步调试功能,终于可以像在pc上一样调试webapp或者hybrid app了,给开发者提供了很大的方便。
  • 大小: 70.3 KB
  • 大小: 56.1 KB
  • 大小: 31.3 KB
  • 大小: 30.6 KB
  • 大小: 34.2 KB
来自: 前端观察
4
0
评论 共 1 条 请登录后发表评论
1 楼 witcheryne 2012-09-29 11:41
Safari 的云标签 对调试也很有用.

发表评论

您还没有登录,请您登录后再发表评论

相关推荐

  • 以数据库字段分组显示数据的sql语句(详细介绍)

    代码如下:&lt;?...dbname=group”;$db = new PDO($dsn, ‘root’, ”);$db-&gt;exec&#40;‘set names utf8’&#41;; $sql = “select conf_id from `group` group by conf_id”;//$pre = $db-&gt;prepare($sql);...

  • python pandas从mongodb中取数据,根据某个字段分组显示

    # coding=utf-8 import pandas import os from pymongo import MongoClient client = MongoClient('ip',27017)//已经...db = client.movie //进入数据库 collection = db.comments //进入集合 df = pandas.DataFrame

  • oracle 分组合并字段,每组行显示

    2、 row_number() over(partition by l.dateStr order by l.dateStr asc) su 这句sql是分组排序。1、wm_concat()函数默认,号分割。若要用其它分隔符,可以如下使用。实现:采用wm_concat()函数。

  • mysql多字段分组

    文章目录mysql多字段分组group by 语法多字段分组GROUP BY与ORDER BY一起使用(分组排序)使用having过滤分组 mysql多字段分组 group by 语法 分组查询是对数据按照某个或多个字段进行分组,MYSQL中使用group by关键字...

  • Mysql将数据库中重复的数据全部显示出来

    我们这里将username中重复的数据显示出来,这里我们通过一个分组+having判断可以看到该字段中重复的字段有…… SELECT userid,username,COUNT(username) as num FROM userinfo GROUP BY username HAVING COUNT(*)...

  • 数据库分组函数

    (1)分组函数:用作统计使用,又称为聚合函数或者统计函数或者组函数 分类:sum 求和,avg 求平均值,max 最大值,count 计算个数 1,简单的使用:select sum(salary) from emp; 2,参数支持哪些类型: sum,...

  • MongoDb多字段分组统计

    MongoDB多字段分组统计

  • oracle数据库怎么分组查询,oracle数据库之分组查询

    分组查询复杂一点的是建立在多张表的查询的基础之上,(我们在上一节课的学习中已经给大家分享了多表查询的使用技巧,大家可以自行访问:多表查询1 多表查询2)而在实际项目中的分组查询的使用也是比较多的,作为初学...

  • mysql中分组后拼接某个字段——GROUP_CONCAT函数

    mysql中分组后拼接某个字段

  • 在mysql数据库中查询某个字段不重复的记录

    SELECT DISTINCT [字段名] FROM [表名] WHERE [检索条件字句]Distinct关键字主要用来在SELECT查询记录中根据某指定字段的值去除重复记录。或者 select distinct username from msg;实际上,我们完全可以用另一种办法...

  • 数据库将表的字段值查询为字段名

    现有两张表,成绩表和学籍表 成绩表:stuScore 学号 科目 成绩 是 是 1 语文 65 1 数学 83 ...编写sql语句将两张表的数据查询成这样的结构 学号

  • 数据库中分组函数使用的几点注意事项

    在数据库的操作中使用分组函数是经常的事情,但是用不好会经常出错,如何使用全在一个习惯,这里就浅谈一下分组函数的一点点注意事项,不到之处还请路过的高人多多指点:首先分组函数的格式为:SELECT colum,group_...

  • 数据库多条数据集某个字段拼接

    -- 这个函数将多条数据的某个字段根据逗号分割进行拼接。 -- SQL函数的实例如下 SELECT GROUP_CONCAT(column_name) FROM u_opt_columnsetting GROUP BY user_id 查询结果如下: 3、针对Oracle -- 第一个函数 WM_...

  • 小程序云开发中对数据库中数据分组并获取对应的数据

    小程序云开发中对数据库数据进行group后获取每组的第一条数据并输出所有字段。 @Seehttps://developers.weixin.qq.com/miniprogram/dev/wxcloud/reference-sdk-api/database/aggregate/Aggregate.group.html db....

  • mysql 多字段分组统计

    实现:通过"group by"关键字 语法:group by 字段 示例:select deploy_env_name,count(deploy_env_id) '云服务...解释:根据deploy_env_id,deploy_env_name字段进行分组,然后使用count函数统计deploy_env_id数量 .

  • MySQL 显示group分组后 某个字段的所有子项字段值

    表结构 CREATE TABLE `t_log_role_room` ( `id` int(11) NOT NULL AUTO_INCREMENT, `role_id` int(11) NOT NULL COMMENT '房间ID', `room_key` bigint(32) NOT NULL COMMENT 't_log_room对应房间的主键', ...

  • PostgreSQL 字段分组并按时间排序,组内排序,窗口函数

    PostgreSQL 字段分组并按时间排序,组内排序,窗口函数

  • mysql 根据某个字段的一部分来分组

    1.数据长这个样子,test表有2个字段,id和name,根据name来分组,name前面一段相同,后面的序号不同,这种算一组数据。 2.分完组是这个样子 3.sql SELECT LEFT ( a.name, ( IF ( char_length(a....

  • oracle按单个字段分组

    按不同单个字段分组结果查询不分组字段 SELECT ID FROM ( SELECT ID, NAME, TASK_VERSION, COUNT(ID) OVER (PARTITION BY NAME)AS NUM, --单个字段分组 MIN(TASK_VERSION) OVER (PARTITION BY NAME) AS TASK_...

  • 基于springboot+Web的毕业设计选题系统源码数据库文档.zip

    基于springboot+Web的毕业设计选题系统源码数据库文档.zip

Global site tag (gtag.js) - Google Analytics