使用Ruby on Rails和Eclipse开发iPhone应用程序,第1部分 - 编程入门网
e 模拟器可供选择:iPhoney 或者 iPhone SDK 中附带的官方 iPhone 模拟器。
iPhoney 是一个专用应用程序,用于提供类似于 Aptana 插件的仿 iPhone 显示界面。当站点比 iPhone 视窗大时,这两个显示界面在显示内容时会有所不同。如您所见,Aptana 插件显示内容的完整尺 寸并且提供滚动条。在 iPhoney 中,Web 页面将被压缩成视窗的尺寸(让页面更符合实际的 iPhone 显 示界面)。两个应用程序都不支持 Mobile Safari 的双击放大和缩小功能,因此无法完全替代在真正的 iPhone 中的测试。 如果您已注册并下载官方 iPhone SDK,那么也可以使用该包中的官方 iPhone 模拟器。它将发送正确 的用户代理并且模拟 Mobile Safari 的所有行为,包括双击缩放。惟一的小缺点是您必须运行 Mac OS X V10.5,并且由于它将模拟整个 iPhone 操作系统,因此需要在启动时显式启动 Mobile Safari。您也不 能像在桌面浏览器那样获取 HTML 源代码清单。如果您可以使用它,那么它将是可以使用的最可靠的 Mobile Safari 模拟器。 为 iPhone 提供内容 假定您是 Soups OnLine 的经营者,所有汤品的在线资料看上去热气腾腾且美味多汁。您的站点在台 式机中看上去很不错,但是您开始意识到越来越多的用户需要在回家的路上查看这些信息,并通过 iPhone 访问站点。目前,您的 iPhone 用户看到的内容如下所示: 图 2. iPhone 中的桌面视图 不太糟糕,而且感谢 Mobile Safari 提供的优秀缩放 UI,用户可以浏览站点。尽管如此,它的界面 可以更整洁并且更直接地满足手机用户的需求。 在这里应当说明的是,Soups OnLine 是在我的 Professional Ruby On Rails 一书中创建的站点。我 在这里使用它很大程度上是因为它是已经存在的完整站点,我可以随意改动,并且不会侵犯其他人的版权 。有关本文中使用的 Soups OnLine 版本的代码和初始版本所基于的模板的链接,请参阅 参考资料。 要服务手机用户,您的 Rails 应用程序需要管理以下所有工作: 当用户使用 iPhone 或 iPod touch 访问站点时进行检测。 允许用户在站点的手机版与常规版之间随意切换。 针对 Mobile Safari 用户使用不同的布局,包括独立的层叠样式表(Cascading Style Sheet,CSS) 文件和(可能包括)JavaScript 库。 使用Ruby on Rails和Eclipse开发iPhone应用程序,第1部分(3)时间:2011-11-29 ibm developerWorks Noel Rappin为手机用户提供不同的内容。 在本文中执行这些任务的代码可以按原样使用。这段代码还被收集到名为 rails_iui 的 Rails 插件 中,您可以将该插件添加到项目中,这样就可以在一个包中获得所有相同功能。 检测 Mobile Safari 用户 要为 iPhone 提供自定义内容,您的 Rails 应用程序必须能够识别 iPhone。在服务器端,主要的识 别方法是由浏览器向服务器发送用户代理字符串。iPhone 用户代理字符串类似以下内容(版本号将随时 间改变): Mozilla/5.0 (iPhone; U; CPU like Mac OS X; en) AppleWebKit/420+ (KHTML, like Gecko) Version/3.0 Mobile/1A543 Safari/419.3 iPod touch 用户字符串的不同之处在于括号表达式的开头为 iPod,而不是 iPhone。Apple 建议您有 必要使用 WebKit 版本号(在本例中为 AppleWebKit/420+)以确定新标记或 CSS 设置是否可用(如果是 在客户端而不是在服务器端进行测试,Apple 建议根本不要使用用户代理字符串,但是要测试是否具有特 定功能)。 在 Rails 内部,您需要能够在 ApplicationController 中识别 iPhone 用户代理以便最终在 before 过滤器中使用。您不能在字符串中直接搜索 “iPhone”,因为这将漏掉 iPod touch。此时,最不会过时 的识别 iPhone 用户的方法是匹配 “Mobile” 与 “S |
凌众科技专业提供服务器租用、服务器托管、企业邮局、虚拟主机等服务,公司网站:http://www.lingzhong.cn 为了给广大客户了解更多的技术信息,本技术文章收集来源于网络,凌众科技尊重文章作者的版权,如果有涉及你的版权有必要删除你的文章,请和我们联系。以上信息与文章正文是不可分割的一部分,如果您要转载本文章,请保留以上信息,谢谢! |