2011年7月16日土曜日

ralisでPC用とiPhone用のデザインを振り分ける

iPhoneからアクセスされると専用のビューを表示させるように設定する。

config/initalizes/mime_types.rbの以下の文のコメントアウトをはずす。
Mime::Type.register_alias "text/html", :iphone

動作させたいコントローラーに以下を追記

before_filter :adjust_format_for_iphone

private

def adjust_format_for_iphone
 request.format = :iphone if request_iphone?
end

public

def request_iphone?
  request.user_agent && request.user_agent[/iPhone|Android/]
end


で、専用のビューを作成する。(ここではindexというコントローラーとindexというアクション名で説明)

layouts/index.iphone.erb #iPhone用のレイアウトファイル
index/index.iphone.erb #index用のレイアウトファイル


あとはそれぞれデザインすればOK。

iPhone用のデザインはUiUIKitというのがあって、それを使うと比較的簡単に作れる。


参考
http://yusukezzz.net/blog/archives/1484
http://d.hatena.ne.jp/t-1732/20100828/1282970904

追記
androidにも対応してみました。
iPhoneと同じデザインですけど。。。
もし個別でやるなら、

private

def adjust_format_for_iphone
 request.format = :iphone if request_iphone?
 request.format = :android if request_android?
end

public

def request_iphone?
  request.user_agent && request.user_agent[/iPhone/]
end

def request_android?
   request.user_agent && request.user_agent[/Android/]
end

にして、index.android.erbですかね?
試してないのでわかりません><

0 件のコメント:

コメントを投稿