`
天梯梦
  • 浏览: 13764312 次
  • 性别: Icon_minigender_2
  • 来自: 洛杉矶
社区版块
存档分类
最新评论

iphone/ipod网页开发教程及规则

 
阅读更多

侦测iPhone/iPod

 

开发特定设备的移动网站,首先要做的就是设备侦测了。下面是使用Javascript侦测iPhone/iPod的UA,然后转向到专属的URL。

 

if((navigator.userAgent.match(/iPhone/i)) || (navigator.userAgent.match(/iPod/i))) {
if (document.cookie.indexOf("iphone_redirect=false") == -1) {
window.location = "http://m.example.com";
}
}
 

虽然Javascript是可以在水果设备上运行的,但是用户还是可以禁用。它也会造成客户端刷新和额外的数据传输,所以下面是服务器端侦测和转向:

 

if(strstr($_SERVER['HTTP_USER_AGENT'],'iPhone') || strstr($_SERVER['HTTP_USER_AGENT'],'iPod')) {
header('Location: http://yoursite.com/iphone');
exit();
}
 

 

设置viewpoint和屏幕等宽

 

如果不设置viewpoint,网站在viewpoint就会显示成缩略形式。如果你专门为iPhone/iPod开发网站,这一条很有用,而且很简单,只需要插入到head里就可以:

 

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

使用iPhone规格图标

 

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

 

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

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

 

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

 

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

 

侦测设备旋转方向

 

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

 

window.onload = function initialLoad() {updateOrientation();}
 
function updateOrientation(){
var contentType = “show_”;
switch(window.orientation){
case 0:
contentType += “normal”;
break;
 
case -90:
contentType += “right”;
break;
 
case 90:
contentType += “left”;
break;
 
case 180:
contentType += “flipped”;
break;
}
document.getElementById(“page_wrapper”).setAttribute(“class”, contentType);
}
 

iPhone才识别的CSS

 

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

 

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

缩小图片

 

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

 

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

 

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

 

默认隐藏工具栏

 

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

 

window.addEventListener('load', function() {
setTimeout(scrollTo, 0, 0, 1);
}, false);
 

 

使用特殊链接

 

这两条不用说了吧:

 

<a href="tel:12345654321">打电话给我</a>
<a href="sms:12345654321">发短信</a>
 

模拟:hover伪类

 

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

 

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

然后用CSS增加hover效果:

 

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

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

 

iphone fixed positioning

 

关于漂浮定位,测试后发现 { position: fixed; } 不能为其用,

 可以改为 { position:absolute; } 来实现,可以使用iphone看下DEMO:iphone-fixed-positioning

 

 

来源:http://uecss.com/demo/jeff/iphone-fixed-positioning/

 

 

 

 

 

 

 

分享到:
评论

相关推荐

    (0133)-iOS/iPhone/iPAD/iPod源代码-滑杆(Slider)-Risk Cursor

    在本教程“iOS/iPhone/iPad/iPod源代码-滑杆(Slider)-Risk Cursor”中,我们将深入探讨如何自定义UISlider,使其具有更丰富的视觉效果和交互体验。 首先,UISlider的基本用法是设置其最小值、最大值以及初始...

    (0028)-iOS/iPhone/iPAD/iPod源代码-选项卡(Tab Bar)-Customized Tab Bar Notification

    本教程主要聚焦于如何在iPhone、iPad或iPod touch的应用中自定义UITabBar,以实现更加个性化的交互效果。我们将探讨以下几个关键知识点: 1. **自定义Tab Bar的文字**: - `UITabBarItem`是用于表示Tab Bar中每个...

    iPhone开发入门

    【iPhone开发入门】这篇教程是针对想要学习iPhone应用开发的初学者设计的,它揭示了移动应用开发的新时代,特别是自iPhone推出后,程序商店(App Store)如何改变了游戏规则,降低了开发门槛。开发者只需要一台电脑...

    iphone开发

    标题中的“iPhone开发”指的是iOS应用开发,这是针对苹果公司的移动设备,如iPhone、iPad以及iPod Touch等设备上应用程序的开发过程。iOS系统基于Darwin操作系统,采用Objective-C或Swift编程语言,开发者通常需要...

    中文pdf-Learn_iphone_and_ipad_cocos2d_game_development

    《中文pdf-Learn_iphone_and_ipad_cocos2d_game_development》这本书是关于使用Cocos2D游戏引擎开发iOS平台上的iPhone和iPad游戏的详细教程。Cocos2D是一款强大的开源2D游戏开发框架,它允许开发者用Objective-C或...

    斯坦福大学开放课程:iOS开发教程2010年秋(Lecture 12)

    在本课程中,我们探讨了如何使用Core Data进行iOS应用程序开发,尤其是在苹果设备如iPhone 4、iPod Touch及iPad上的应用开发。Core Data是iOS和macOS中的一个框架,它提供了模型层对象的生命周期管理和持久化存储...

    苹果手机助手开发demo

    6. **MFi(Made for iPhone/iPod/iPad)计划**:虽然不是直接涉及,但开发苹果手机助手可能需要遵循MFi计划,这是一个苹果授权的硬件配件认证计划。如果助手需要访问硬件层面的数据或功能,例如控制外设,那么就需要...

    ios开发详细教程, ios代码大全, 苹果系统(ios)架构教程. 附超详细iod学习路径图

    iOS是苹果公司为iPhone、iPad和iPod Touch等设备设计的操作系统。它基于macOS,但进行了大量的定制化处理,以便更好地适应移动设备。iOS的核心部分是Darwin内核,它包含了操作系统的基础组件。 **1.2 iOS架构** ...

    推送教程ppt

    - 需要一台真实苹果设备(如iPhone、iPod touch或iPad),因为模拟器不支持推送功能。 - **证书需求** - 客户端与苹果服务器之间以及服务端与苹果服务器之间的通信需要通过证书来建立安全连接。 **2.2 生成CSR...

    学习Objective-C入门教程_艾悠乐校验

    iOS是苹果公司开发的一款移动操作系统,用于iPhone、iPad和iPod Touch等苹果设备。学习iOS开发,首先要掌握Objective-C语言,它是iOS开发的基石。随着Swift语言的推出,苹果公司鼓励开发者使用Swift进行iOS应用开发...

    ios应用教程入门

    - 本教程旨在引导初学者快速上手iOS应用程序开发,适用于希望在Mac上为iPad、iPhone和iPod touch创建应用程序的新手开发者。 - 通过本教程,读者能够学习到开发iOS应用所需的基本工具、核心概念以及最佳实践。 - ...

    iOS Hackers Handbook

    在这一章节中,作者首先介绍了不同类型的iOS设备,包括iPhone、iPad和iPod Touch等,并探讨了它们各自的安全特性与区别。了解这些设备之间的差异对于理解iOS安全架构至关重要。 #### 苹果如何保护App Store 苹果...

Global site tag (gtag.js) - Google Analytics