使用Ruby on Rails和Eclipse开发iPhone应用程序,第1部分 - 编程入门网
afari”,如:
def is_iphone_request? request.user_agent =~ /(Mobile\/.+Safari)/ end 现在,目标是把 iPhone 集成到 Rails V2.0 respond_to 框架中,以便 iPhone 被自动视为伪 MIME 类型,并且可以增强控制器,如下所示: 清单 1. 处理 iPhone 的样例控制器方法 def index @recipes = Recipe.find_for_index(params[:format]) respond_to do |format| format.html # index.html.erb format.xml { render :xml => @recipes } format.iphone # index.iphone.erb end end 这将需要若干个步骤。首先,把下面一行添加到 config/initializers/mime_types.rb 文件中: Mime::Type.register_alias "text/html", :iphone 使用Ruby on Rails和Eclipse开发iPhone应用程序,第1部分(4)时间:2011-11-29 ibm developerWorks Noel Rappin最新版本的 Rails 实际上将这一行作为一条注释,因此取消注释即可。对于没有 config/initializers 目录的早期版本的 Rails,您可以把这行放到 config/environment.rb 中。 这将创建一个自定义 iphone MIME 类型,可以在您的应用程序内使用。从外部看,iphone 类型被视 为 text/html,但是在内部,您可以分别响应两种类型。 返回到 ApplicationController 中,添加另一个私有方法作为 before 过滤器。 清单 2. 添加 iPhone 格式作为 before 过滤器 before_filter :set_iphone_format def set_iphone_format if is_iphone_request? request.format = :iphone end end 此时,来自 iPhone 或 iPod touch 的所有请求将被标记为 :iPhone 的请求格式。注意,到目前为止 这段代码中没有任何内容是特定于我正在使用的站点示例的,因此您应当可以把这段代码片段随意添加到 要使用的任意站点中。 如果使用的是 rails_iui 插件,您只需把以下行插入 ApplicationController 或者需要响应 iPhone 请求的任意控制器中: acts_as_iphone_controller 如述,Aptana 插件不发送上面所列的用户代理字符串。但是,Rails 的命名约定有利于实现一种简单 的解决方案。在任意 URL 中使用 iphone 扩展名(如在 http://localhost:3000/recipies.iphone 中) 将把请求格式自动设为 :iphone 并为 iPhone 提供内容。这将使您可以在 Aptana 模拟器中测试 iPhone 代码。如果使用的是 rails_iui 插件,则把以上命令更改为 acts_as_iphone_controller(true) 将把应 用程序设置成测试模式,所有请求在这种模式中将被视为 iPhone 请求,从而使您可以轻松地在模拟器或 者其他浏览器中进行测试。 在开发期间查看 iPhone 内容 我已经提到过在开发过程中查看针对 iPhone 优化过的 Web 站点有四种方法: Aptana 的 iPhone Eclipse 插件 iPhoney iPhone SKD 模拟器 iPhone 或 iPod touch Aptana 的 iPhone Eclipse 插件 使用Ruby on Rails和Eclipse开发iPhone应用程序,第1部分(5)时间:2011-11-29 ibm developerWorks Noel RappinAptana 插件有很多优点。它是一个跨平台工具,可以在运行 Eclipse 的任意位置运行。它将允许您 同时查看手机版和传统版站点,并且它可以与其他 Eclipse 开发工具完美地集成。该插件允许您一次性 在多个浏览器中查看应用程序,如果您的目标是手机用户和传统用户,这会十分有帮助。此外,如果在 iPhone 中使用的是客户端 JavaScript 代码,Aptana 有一个优秀的控制台功能,它允许记录来自连接的 iPhone 的事件,甚至还允许把 JavaScript 命令从应用程序发送到手机中。由于本文的重点是服务器端 开发,因此我在这里不会讨论这些功能。 Aptana 的 |
凌众科技专业提供服务器租用、服务器托管、企业邮局、虚拟主机等服务,公司网站:http://www.lingzhong.cn 为了给广大客户了解更多的技术信息,本技术文章收集来源于网络,凌众科技尊重文章作者的版权,如果有涉及你的版权有必要删除你的文章,请和我们联系。以上信息与文章正文是不可分割的一部分,如果您要转载本文章,请保留以上信息,谢谢! |