首页 > 其他分享 >iPad网页开发教程及规则

iPad网页开发教程及规则

时间:2023-08-11 22:00:50浏览次数:57  
标签:iPad CSS3 教程 浏览器 iPhone Safari 网页 CSS

iPad开发的局限性

在iPad上使用Safari浏览普通网站网页的时候,网页因为太大而导致需要手动放大缩小或者滑动,虽然这种滑动行为在iPad上市之初的各种宣传中被津津乐道,但时间久了我们还是会发现这样做并不方便,给用户带来的感受并不十分好。

不支持Flash

在没有越狱的iPad Safari中,网站的Flash都是无法显示的,但可以通过第三方软件或插件或者浏览器来解决,不过,即使不能显示Flash,你一样能够用HTML5和CSS3实现同样的效果。


没有鼠标光标

这意味着鼠标属性,例如鼠标悬停属性是不可能有的。


你或许可以为这个找到一些变通的办法,但是到你的用户那里这些该如何工作将会是困难的事。


滚动条不能按照预期那样起作用

滚动条不能显示包含了充满过多分区的内容。框架也存在高度和宽度的问题。另外,滚动过程中需要两个手指的手势。(我们将在下文中进行充分的讨论)


不支持CSS固定布局

HTML 元素 position:fixed CSS属性不能正确显示,常常会使得页面停留在第一屏,无法向下翻页、放大缩小。


iPad用户侦测:User Agent(用户代理)

随着移动设备上网的普及,很多网站都会进行客户端浏览器类型侦测,主要是靠User Agent来进行识别,如果侦测到是手机浏览则可能重定向,让用户浏览移动设备专用版本。以往我们所指的移动设备,主要是手机等终端,现在,iPad也加入到移动终端设备的行列中来,但它拥有9.7″大屏幕,iPad的Safari浏览器带来接近PC电脑的浏览感受。所以对应iPad的网站页面必须不同于其他移动设备,区别iPad访问主要也要依靠其浏览器的User Agent来进行。


iPhone OS 3.2 SDK beta 3中描述的iPad Safari浏览器User Agent代码:


1	Mozilla/5.0 (iPad; U; CPU OS 3_2 like Mac OS X; en-us) AppleWebKit/531.21.10 (KHTML, like Gecko) Version/4.0.4 Mobile/7B334b Safari/531.21.10

iPad Safari的User Agent代码包含单词:”Mobile”、”iPad”,不包含单词:”iPhone”。这点必须要留意,如果网站以前的版本对移动设备的访问并未区分,那么现在需要修改下,以防止对相应设备返回错误的版本。


模拟iPad浏览器访问的方式


如果你无法通过iPad或iPhone模拟器测试网页情况,你还是能够通过一下方式进行测试:


通过Mac OS X 或 Windows版本的Safari浏览器充当模拟器


Safari菜单->偏好设置->高级->选中 在菜单栏显示”开发菜单”,这是在菜单栏就会出现”开发”这个菜单项


菜单”开发”->用户代理->其他,在弹出的对话框中粘贴上述User Agent代码,点击确定以后,就可以用Safari验证页面是否适合iPad显示了。


用谷歌浏览器充当模拟器

命令行下输入:

1	chrome.exe --user-agent="Mozilla/5.0 (iPad; U; CPU OS 3_2_2 like Mac OS X; en-us)
AppleWebKit/531.21.10 (KHTML, like Gecko)
Version/4.0.4 Mobile/7B500 Safari/531.21.10"

Javascript侦测iPad的User Agent,然后转向到对应版本的URL。

1	if((navigator.userAgent.match(/iPhone/i)) || (navigator.userAgent.match(/iPad/i))) {
2    if (document.cookie.indexOf("iphone_redirect=false") == -1) {
3       window.location = "http://ipad.www.opensoce.com";
4    }
5	}

PHP脚本侦测User Agent

1	if(strstr($_SERVER['HTTP_USER_AGENT'],'iPhone') ||
strstr($_SERVER['HTTP_USER_AGENT'],'iPad')) {
2	header('Location: http://ipad.www.opensoce.com');
3	exit();
4	}

Apache侦测转向

1	RewriteCond %{HTTP_USER_AGENT} ^iPad
2   RewriteRule ^index\..*$ ipad.html [L]
3   RewriteCond %{HTTP_USER_AGENT} ^iPhone
4   RewriteRule ^index\..*$ iphone.html [L]

Nginx侦测转向

1	if ($http_user_agent ~*iPad ) {
2    proxy_pass  http://ipad.www.opensoce.com;
3	}
4	if ($http_user_agent ~*iPhone ) {
5    proxy_pass  http://iphone.www.opensoce.com;
6	}

使用W3C标准网站技术

iPad和iPhone的Safari浏览器不支持插件以及Flash。


使用插件技术(控件)的菜单、导航等在iPad或iPhone的浏览器下将不会显示。


使用插件植入的音频、视频也不会播放, 可以 HTML5的&lt;audio>和<video>标签发布音频视频内容。详细可参考Safari DOM中的HTMLMediaElement、HTMLVideoElement、HTMLAudioElement开发信息.


以往,你可能需要插件去表现动画内容,而在iPad和iPhone浏览器下可以直接采用Javascript+CSS3的特性去制作动画。CSS3开始朝着模块化的方向发展,比如盒子模型、列表模块、背景和边框等等。利用CSS3,你可以直接做出圆角表格,之前可是只能用图片或者VML技术才能实现。


关于HTML5和CSS3,目前在国内比较早和成功的应用是网易三大邮箱((mail.163.com; mail.126.com ;www.yeah.net),你在iPad上输入上述地址的时候,会被转向到iPad适应版本,用户感受很好。HTML5在规范性和速度上拥有诸多优势,据网易提供的数据显示,这个版本的使用中收信写信的速度提升50%。此外,还有一个优势在于,代码量减少大大提高邮箱服务器的处理运行效率,为日后的功能扩展提供一个更强有力的平台。


HTML5/CSS3的未来和目标是为了改善每个人的网络体验。HTML5/CSS3的一点简介:


1 * 使用CSS3渐变,字体阴影,圆盒以边界–这些对菜单栏和简单的网站设计师特别实用的。

2 * 如果你想显示视频,使用HTML5 视频播放器代替Flash(显然它就不能工作)。

3 * 使用HTML5创建离线程序并且脱机存储数据。

4 * 各种实用的教程到处都有,当在开发我的iPad网络程序时我就已经利用了它们。Google他们,得到创意。

利用普通电脑的Safari测试无插件支持情况,在偏好设置->安全->,取消启用插件的选择框,


设置viewpoint

viewpoint,可以理解为:视窗、可视区域,相对于iPad硬件限定的窗口来定义的。iPad窗口大小不可改变,但viewpoint视窗大小可以设置调整。


如果在iPhone开发中指定了视窗标签设置, 在iPad开发中必须进行必要的校正。例如:


在iPhone中,我们会用下述代码的方式指定屏幕宽度


1	<meta name="viewport" content="width=320" /><!--不适应iPad-->

而在iPad中,则必须用device-width替代具体的宽度像素数。


1	<meta name="viewport" content="width=device-width" /><!--适应iPad-->

我们在设置宽度的同时可以设置可缩放的比例范围

1	<meta name="viewport" content="width=device-width; initial-scale=1.0; maximum-scale=1.0;">

触摸式交互

外接硬件键盘仅是作为iPad的选件,触屏式键盘才是iPad主要的交互工具。用户点击文本框的时候,软键盘会自动弹出,例如用户点击<input type=”text”>或<textarea>等的时候。


iPhone、iPad用户主要是通过手指与网页进行交互。这种交互方式的缺陷是无法处理类似鼠标停留的事件,所以,在网页中的鼠标事件:mousemove、mouseover、mouseout或CSS代码的:hover达不到PC机浏览器中的表现效果.


单手指触摸事件(Touch Events):在iPhone、iPad浏览器中可处理的单手指DOM触摸事件:touchstart、touchmove、touchend、touchcancel(when the system cancels the touch) 。在输入框按住一会会弹出剪切/复制/粘贴窗口, 可在网页通过 -webkit-user-select: none代码禁用该功能.


双手指协同事件(Gestures), 即是指两只手指接触屏幕的时候缩放或者旋转的效果,对于侦听gestures,iPhone/iPad也有三个事件:gesturestart,gestureend,gesturechange。

同时事件参数event有两个属性:scale,rotation。Scale的中间值是1,大于1表示放大,小于1表示缩小。


模拟:hover伪类

因为iPhone并没有鼠标指针,所以没有hover事件。那么CSS :hover伪类就没用了。但是iPhone有Touch事件,onTouchStart 类似 onm ouseOver,onTouchEnd 类似 onm ouseOut。所以我们可以用它来模拟hover。使用Javascript:


1	var myLinks = document.getElementsByTagName('a');
2	for(var i = 0; i < myLinks.length; i++){
3    myLinks[i].addEventListener(’touchstart’, function(){this.className = “hover”;}, false);
4    myLinks[i].addEventListener(’touchend’, function(){this.className = “”;}, false);
5	}

然后用CSS增加hover效果:


1 a:hover, a.hover { /* 你的hover效果 */ }

这样设计一个链接,感觉可以更像按钮。并且,这个模拟可以用在任何元素上。


用 textareas 取代 contenteditable

iPhone和iPad浏览器不支持contenteditable元素。


阻止旋转屏幕时自动调整字体大小

-webkit-text-size-adjust是webkit的私有css:


1	html, body, form, fieldset, p, div, h1, h2, h3, h4, h5, h6 {-webkit-text-size-adjust:none;}

侦测设备旋转方向

iPhone可以在横屏状态下浏览网页,有时候你会想知道用户设备的手持状态来增强可用性和功能。下面一段Javascript可以判断出设备向哪个方向旋转,并且替换css:


01	window.onload = function initialLoad() {updateOrientation();}
02	function updateOrientation(){
03     var contentType = "show_";
04     switch(window.orientation){
05         case 0:
06             contentType += "normal";
07             break;
08         case -90:
09             contentType += "right";
10             break;
11         case 90:
12             contentType += "left";
13             break;
14         case 180:
15             contentType += "flipped";
16             break;
17     }
18     document.getElementById("page_wrapper").setAttribute("class", contentType);
19	}

iPhone/iPad才识别的CSS

如果不想设备侦测,可以用CSS媒体查询来专为iPhone/iPod定义样式。


1 @media screen and (max-device-width: 480px) {}

CSS3媒体查询

对于CSS3的媒体(media)查询,iPhone和iPad是不同的。通过这个技术,可以对设备不同的握持方向应用不同的样式,增强功能和体验。


iPhone是通过屏幕最大宽度来侦测的。是这样:

1	<link rel="stylesheet" media="screen and (max-width: 320px)"href="portrait.css" />
2	<link rel="stylesheet" media="screen and (min-width: 321px)"href="landscape.css" />

而iPad有点不同,它直接使用了媒体查询中的orientation属性。是这样:

1	<link rel="stylesheet" media="screen and (orientation:portrait)"href="portrait.css" />
2	<link rel="stylesheet" media="screen and (orientation:landscape)"href="landscape.css" />

3 <!--注意:如果两种样式表有显著地区别的话,这会分散用户注意力,所以这并不是必须要的组件。-->

之后只要将不同的样式分别定义出来就可以了。


缩小图片

网站的大图通常宽度都超过480像素,如果用前面的代码限制了缩放,这些图片在iPhone版显示显然会超过屏幕。好在iPhone机能还够,我们可以用CSS让iPhone自动将大图片缩小显示。


1	@media screen and (max-device-width: 480px){
2    img{max-width:100%;height:auto;}
3	}

注意如果原图片非常大,或一个页面非常多图,最好还是在服务器端缩放到480像素宽,iPhone只需要在正常浏览时缩略到320像素。这样不会消耗太多流量和机能。


默认隐藏工具栏

iPhone的浏览器工具栏会在页面最顶端,卷动网页后才隐藏。这样在加载网页完成后显得很浪费空间,特别是横向屏幕时。我们可以让它自动卷动上去。


01	<script type="application/x-javascript">
02    addEventListener("load", function()
03    {
04       setTimeout(hideAddressbar, 0);
05    }, false);
06    function hideAddressbar()
07    {
08       window.scrollTo(0, 1);
09    }
10	</script>

iPad图标

iPad开发完成后,会体现图标的地方主要有:


iPad桌面,不大于72×72的png格式图标;iPhone桌面,不大于57×57的png格式图标,在Xcode中的资源部分添加,并在xxxInfo.plist中设置Icon file属性为添加的图片资源名称。图标文件不需要做圆角和反光,iPad/iPhone自己会完成。

App Store中软件简介中显示的缩略图,在打包生成zip文件的根目录放置的文件名为iTunesArtwork的jpg图片,大小要求在512×512以下

如果你的用户将你的网站添加到home screen,iPhone会使用网站的缩略图作为图标。然而你可以提供一个自己设计的图标,这样当然更好。图片是57×57大小,png格式。不需要自己做圆角和反光,系统会自动完成这些工作。然后将下面这条加入head中:

1	<rel="apple-touch-icon" href="images/youricon.png"/>

用iScroll控制你的触摸滚动

这是一个简单且最有用的源码,能够帮助你控制你的网络应用程序。由Matteo Spinelli创作,iScorll是一个开发项目,因为网络浏览器引擎Webkit工具套件(用于iPhone,iPod,iPad,Android 以及Palm上)不提供本地方式去滚动文章内部一个固定的高度/宽度元素。


这种不幸的情况防止任何Web应用程序有一个头和/或页脚的 position:absolute CSS属性,并滚动中心区域的内容。


iScroll代码非常易于使用。如果你喜欢iScroll,你需要这些类似的jQuery插件:jQuery Swipe和JQTouch。


iPad本机应用程序

1 * 本机应用程序运行更快:使用更多的iPad的资源和性能。

2 * 不需要在网络上搜索:在苹果商店上一站式购买。

3 * 用户感觉更加舒适:他们知道程序是为他们设备特别制作的,不适合用HTML5/CSS3。

4 * 更容易打开和关闭:程序在打开和关闭的时候没有任何中断且不会丢失数据。

5 * 更难于开发:要求Objective-C 和Apple SDK的知识。

6 * 封闭的平台:很难为其他设备进行修改比如Android平台。

iPad网络应用程序

1 * 新兴的编码标准:HTML5,CSS3,JavaScript正在为网络带来令人惊奇的客户端功能;特别是本地/离线存储功能。

2 * 站点可以对任何浏览器进行定制:根据你的用户所操作的设备或浏览器切换样式表或重定向网页都。它可以使您的应用程序具有通用性。

3 * 开发简单:使用HTML,CSS和JavaScript创建iPad网络应用程序代替学习新语言。这些技能你应该已经具备了。

4 * 史蒂夫 乔布斯不能审查你的网络程序:网络是一个开放平台–意味着你皆在自己的掌控之中,不需要等待苹果商店的批准通过。

5 * 小众的市场,没有足够的支持:网络应用程序需要众多的力量,不仅需要吸引用户也需要开发者参与。

免费开源开发工具

http://www.appcelerator.com/


标签:iPad,CSS3,教程,浏览器,iPhone,Safari,网页,CSS
From: https://blog.51cto.com/u_8895844/7053474

相关文章

  • 将网页文章转化为markdown格式
     1.chrome安装"有道云笔记网页剪报"2.看到想保存的网页文章,点击插件"有道云笔记网页剪报",选择"文章",点击保存3.查看保存结果,全部复制内容到claude,并且添加对话"将内容转为markdown" 就可得到markdown格式的文章了......
  • CSS基础:学习CSS样式的基本语法和应用,了解如何美化网页。
    CSS(层叠样式表)是一种用于描述网页上元素(例如文字、图像、背景等)外观和布局的样式语言。通过使用CSS,您可以控制和改变网页的外观,使其更具吸引力和易于使用。下面是一些CSS基础知识和常用的语法:选择器:CSS中的选择器用于选择要应用样式的HTML元素。最常见的选择器是元素选择器(例如......
  • 无涯教程-Perl - lock函数
    描述此函数将咨询锁放在共享变量或THING中包含的引用对象上,直到该锁超出范围。lock()是一个"弱关键字":这意味着,如果您在调用该函数之前已通过该名称定义了该函数,则将改为调用该函数。语法以下是此函数的简单语法-lockTHING返回值此函数不返回任何值。参考链接htt......
  • 传奇架设技术教程分享提示非法操作引起kernel32出错的原因分析
    使用Windows9x/Me做传奇服务器端的朋友最害怕的便是突然屏幕上出现“非法操作”的提示(游戏角色倒档),而其中的显示信息又常常涉及kernel32.dll这个文件,那么kernel32.dll是什么,如何应对与解决这类问题呢?相信传奇一条龙下面这篇文章会为你指点迷津。一、什么是kernel32内核文件......
  • 诺奖文章里面的动图绘制教程来了!!
    作者:严涛浙江大学作物遗传育种在读研究生(生物信息学方向)伪码农,R语言爱好者,爱开源。生信宝典对代码进行了系统测试和解释。严涛老师的绘图教程还有:ggplot2学习笔记之图形排列R包ggseqlogo|绘制序列分析图ggplot2高效实用指南(可视化脚本、工具、套路、配色)简介R-Ladies是一个世......
  • CINEMA 4D C4D R17三维动画软件下载和安装教程
    C4D全名CINEMA4D,由德国MaxonComputer研发出的3D动画软体。C4D是一个老牌的三维软件。能够进行顶级的建模、动画和渲染的3D工具包。内置纹理、动画、渲染、多边形建模、克隆、雕刻等多种辅助设计工具。软件介绍完整的样条工具包跟随着R17一起问世,不需再从工具间切换挑选!无论是草图......
  • 无涯教程-Perl - link函数
    描述此函数创建一个新文件名NEWFILE,链接到文件OLDFILE。该函数创建一个硬链接;如果需要符号链接,请使用符号链接功能。语法以下是此函数的简单语法-linkOLDFILE,NEWFILE返回值如果失败,此函数返回0,如果成功,则返回1。例以下是显示其基本用法的示例代码,这将使用现有......
  • 无涯教程-Perl - lc函数
    描述此函数返回小写版本的EXPR,如果省略EXPR,则返回$_。语法以下是此函数的简单语法-lcEXPRlc返回值此函数返回小写版本的EXPR,如果省略EXPR,则返回$_。例以下是显示其基本用法的示例代码-#!/usr/bin/perl$orig_string="ThisisTestandCAPITAL";$changed_st......
  • Shopify 真实案例技术赚钱营销课视频教程
    Shopify真实案例技术赚钱营销课视频教程本视频课程是为那些希望学习如何利用Shopify平台以及有效的市场营销技巧来赚钱的人群而设计的。无论你是一名初学者还是有一定经验的网店经营者,本课程都将为你提供实际案例和技术指导,从而帮助你成功创建和运营一个盈利的电子商务企业。课......
  • OpenGL教程-中文版
    本文是LearnOpenGL教程的中文翻译,英文版的地址为:https://learnopengl.com 学习(和使用)现代OpenGL需要用户对图形编程以及OpenGL的幕后运作有非常好的理解才能在编程中有很好的发挥。所以,我们会首先讨论核心的图形学概念,OpenGL怎样将像素绘制到屏幕上,以及如何利用黑科技做出一......