快速业务通道

使用Ruby on Rails和Eclipse开发iPhone应用程序,第1部分 - 编程入门网

作者 佚名技术 来源 NET编程 浏览 发布时间 2012-06-14
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 Rappin

Aptana 插件有很多优点。它是一个跨平台工具,可以在运行 Eclipse 的任意位置运行。它将允许您 同时查看手机版和传统版站点,并且它可以与其他 Eclipse 开发工具完美地集成。该插件允许您一次性 在多个浏览器中查看应用程序,如果您的目标是手机用户和传统用户,这会十分有帮助。此外,如果在 iPhone 中使用的是客户端 JavaScript 代码,Aptana 有一个优秀的控制台功能,它允许记录来自连接的 iPhone 的事件,甚至还允许把 JavaScript 命令从应用程序发送到手机中。由于本文的重点是服务器端 开发,因此我在这里不会讨论这些功能。

Aptana 的

凌众科技专业提供服务器租用、服务器托管、企业邮局、虚拟主机等服务,公司网站:http://www.lingzhong.cn 为了给广大客户了解更多的技术信息,本技术文章收集来源于网络,凌众科技尊重文章作者的版权,如果有涉及你的版权有必要删除你的文章,请和我们联系。以上信息与文章正文是不可分割的一部分,如果您要转载本文章,请保留以上信息,谢谢!

分享到: 更多

Copyright ©1999-2011 厦门凌众科技有限公司 厦门优通互联科技开发有限公司 All rights reserved

地址(ADD):厦门软件园二期望海路63号701E(东南融通旁) 邮编(ZIP):361008

电话:0592-5908028 传真:0592-5908039 咨询信箱:web@lingzhong.cn 咨询OICQ:173723134

《中华人民共和国增值电信业务经营许可证》闽B2-20100024  ICP备案:闽ICP备05037997号