是非に及ばず

プログラミングに関する話題などを書いていきます(主にRailsやAndroidアプリ開発について)

jpmobileをTizenに対応させる方法(Rails3)

概要

jpmobileをTizenに対応させてみる を参考にしたというかほぼそのまま。
参考サイトでは、lib/以下にファイルを置いているけど、個人的には独自のパッチは、config/initializers/以下に配置するのがベストだと思うので、そっちのアプローチで対応してみた。

ソース

以下のソースをconfig/initializers/jpmobile_tizen.rbとして保存して、railsを再起動すれば完了!

# encoding: utf-8
#
#== 概要
# jpmobileをTizeに対応させるパッチ
module Jpmobile

  module Mobile
    DEFAULT_CARRIERS_WITH_TIZEN = DEFAULT_CARRIERS + ["Tizen"]
    def self.carriers
      if @carriers.nil? || @carriers == DEFAULT_CARRIERS
        @carriers = DEFAULT_CARRIERS_WITH_TIZEN.dup
      end
      @carriers
    end

    class Tizen < SmartPhone
      # 対応するUser-Agentの正規表現
      USER_AGENT_REGEXP = /Tizen/
    end
  end

end

できるようになる事

ユーザエージェントにTizenを含む端末に対して以下の動作は確認できた。

  • request.smart_phone?がtrueになる
  • app/views/xxx_smart_phone.html.erb などスマートフォン用のビューが参照される