Jpmobileを使ってみる

4,370 views

Published on

第1回社内勉強会「あわててはじめるRuby on Rails」 第3部「Jpmobileを使ってみる」

Published in: Technology
0 Comments
0 Likes
Statistics
Notes
  • Be the first to comment

  • Be the first to like this

No Downloads
Views
Total views
4,370
On SlideShare
0
From Embeds
0
Number of Embeds
134
Actions
Shares
0
Downloads
9
Comments
0
Likes
0
Embeds 0
No embeds

No notes for slide

Jpmobileを使ってみる

  1. 1. Jpmobile を使ってみる 地下会 室議 2 ~ 4 fistfvck
  2. 2. アジェンダ 本日のアジェンダです 1.インスト ルー – 主な 能機 – その他 多分、 が余りますので、のんびりいきます。時間
  3. 3. 始める前に前提条件 $ ./script/about About your application's environment Ruby version              1.8.7 (i686-linux) RubyGems version          1.3.1 Rails version             2.1.2 Active Record version     2.1.2 Action Pack version       2.1.2 Active Resource version   2.1.2 Action Mailer version     2.1.2 Active Support version    2.1.2 Edge Rails revision       unknown Application root          /home/ymiyauchi/sample Environment               development Database adapter          postgresql の前提で めていきます。進
  4. 4. インスト ルー まぁ、大きく分けて 2 パタ ンー 1. plugin – gem
  5. 5. plugin の 合場   $ ./script/plugin install git://github.com/darashi/jpmobile.git これだけです。 です。簡単 git 入ってなければ、 yum からインスト ルしちゃってくださー い。 ただし $ ./script/plugin install http://jpmobile.rubyforge.org/svn/tags/rel-0.0.3/jpmobile Rubyforge には、 0.0.2 までしかないので、 0.0.3 を使いたけ れば、 github を使うこと。
  6. 6. gem の 合場 # gem install jpmobile root 限でインスト ルしちゃってください。権 ー こっちは、 RAILS_ROOT/config/enviroment.rb に使用宣言しな きゃなので注意
  7. 7. インスト ルー どちらかというと、 gem のほうがオススメ まぁ、ソ ス むときにー 読 cd /usr/local/lib/ruby/.... ってやんなきゃいけないんですけど…。
  8. 8. 主な 能機 携 の帯電話 識別 actioncontroller と actionview の 方にフックをしかけているの両 で、コントロ ラでもビュ でも同じように使えるみたいですー ー 。   <% if request.mobile? %>     携 からのアクセスです。帯電話   <% else %>     携 からのアクセスではありません。帯電話   <% end %> ビュ のなかで 当に使えたりー 適
  9. 9.   class PcController < ApplicationController     before_filter :redirect_if_mobile     def index     end     private     def redirect_if_mobile       if request.mobile?         pa = params.dup         pa[:controller] = "/mobile"         redirect_to pa       end     end   end   コントロ ラのなかで 当に使えます。ー 適
  10. 10. ほかにも… case request.mobile when Jpmobile::Mobile::Docomo   # for DoCoMo when Jpmobile::Mobile::Au   # for au when Jpmobile::Mobile::Softbank   # for SoftBank when Jpmobile::Mobile::Willcom   # for Willcom when Jpmobile::Mobile::Emobile   # for EMOBILE else   # for PC end みたいに使えます。 if request.mobile.is_a?(Jpmobile::Mobile::Docomo)   # for DoCoMo end
  11. 11. 今までの は、主に識別 UA を使ってたので、 本当に携 端末からアクセスがなのかわかりません帯 でも
  12. 12. キャリア GW の IP 検証 こんな素 なメソッドがあります敵 request.mobile.valid_ip?
  13. 13. キャリア GW の IP 検証 ただし、キャリア GW の IP アドレスは、ソ スに埋め んでー 込 あるので 更があった 合はえらい目にあうでしょう…。変 場 また、 UA 装の出来るスマ トフォンが、キャリア偽 ー GW から 来た 合は、すり けちゃうでしょう…。場 抜
  14. 14. ビュ テンプレ トの自 切 えー ー 動 換 先 位はこんな感じ?優 順 1.アクション _mobile_ キャリア .html.erb – アクション _mobile.html.erb – アクション .html.erb   子部分の「拡張 .html.erb 」は、「 .rhtml 」でもいけるんじゃ ね? ( してません調査 )   デフォルト 子が「拡張 .html.erb 」に わったんで…。変
  15. 15. ビュ テンプレ トの自 切 えー ー 動 換 そういえば、 README にこんなん かれてました書     BUG:  状、上 の例では現 記 index.rhtml  が存在しない 合に振り分けが行わ場 れない ( ダミ ファイルを置くことで回避可能ー ) 。 でも、まぁ、そんなことも く、普通に使えました無
  16. 16. ビュ テンプレ トの自 切 えー ー 動 換 そういえば、 partial テンプレ トはどうなるんですかね?ー
  17. 17. ビュ テンプレ トの自 切 えー ー 動 換 partial テンプレ トも切り替えてくれました。ー  
  18. 18. 文字の相互絵 変換 コントロ ラに一行足すだけで、相互 してくれます。ー 変換   class MyController   mobile_filter end サ バ からはー 側 SJIS( ソフバンは UTF-8) で送出して、クライ アントからのデ タはー UTF-8 に してくれます。変換
  19. 19. めんどくさい半角 全角も自 してくれます。・ 動変換   class MyController   mobile_filter :hankaku => true end ただし、微妙なのが     :hankaku=>true 指定 は、カタカナは半角カナに されて送出される。時 変換 携 から送られた半角カナは全角カナに される。帯電話 変換   え …。ー
  20. 20. 文字の相互絵 変換 あ、忘れてましたが     テンプレ ト内ではー UTF-8 でエンコ ドするか、数 文字ー 値 参照の &#xHHHH; 形式で指定する。 だそうです。 emacs だと、 SJIS 外字が表示 集できないので、編 これは助かるよね!
  21. 21. 端末情 の取得報 DoCoMo でいう icc とか ser とか guid とか au のサブスクライバ ID とか ソフバンの端末 造番号とか製 request.mobile.ident request.mobile.ident_subscriber request.mobile.ident_device request.mobile.ident_subscriber は、 契 者固有情約 報 (guid 、 icc 、サブスクライバ ID )。   request.mobile.ident_device は、 端末固有情報 (ser 、端末 造番号製 ) 。
  22. 22. 主な 能機 基本的な使い方は以上です。 めんどいのは、 jpmobile で引き受けてくれるので ですね~楽 。 Rails は文字コ ドがー UTF-8 だし だよね。楽   でも
  23. 23. うちのポスグレ エンコ ディングがー EUC-JP なんですけど?
  24. 24. かがなんとかしてくれるよ誰
  25. 25. その他 Transit SID PHPSESSID とかと同じアレ。 使い方はやっぱり簡単 class MyController   trans_sid end
  26. 26. 全ての URL に SID がくっつくので かっこわるいよね
  27. 27. おわり
  28. 28. になったところをつらつらと気 • セッション使うとしたら、やっぱ SID なの? o かっこわるいよね? o 端末情 取得できるんだし、オ トログインで報 ー mobile.ident をキ にしたセッシー ョンを持てば? • ビュ スクリプト きづらいよね?ー 書 o ヘルパ かきまくるのだるくね?ー o wikistyle とか redcloth とかで、メタテンプレを作って、メタテンプレから、テン プレを吐き出すようにしたら? ( モバゲがそんな感じかな )  キャリア のタグの相 もそこで吸間 違 収 •   全体的に速いけど、テンプレ以外を 更したら、変 AP サ バ再起 ってめんどいわー 動    

×