Phoenixフレームワークを使用してウェブサイトを作成しています。ユーザーエージェントでレイアウトを切り替える方法
PCやスマートフォンを使用するかどうかによって、別のレイアウトとテンプレートを使用したいと思います。
私はユーザエージェントをチェックしてレイアウトとテンプレートを切り替えたいと思います。
ユーザエージェントとスイッチのレイアウトとテンプレートを確認する最も良い方法は何ですか? または、それを行うための有用なライブラリがありますか?
Phoenixフレームワークを使用してウェブサイトを作成しています。ユーザーエージェントでレイアウトを切り替える方法
PCやスマートフォンを使用するかどうかによって、別のレイアウトとテンプレートを使用したいと思います。
私はユーザエージェントをチェックしてレイアウトとテンプレートを切り替えたいと思います。
ユーザエージェントとスイッチのレイアウトとテンプレートを確認する最も良い方法は何ですか? または、それを行うための有用なライブラリがありますか?
これはプラグで簡単に行うことができます。あなたのプラグに渡されたconn
構造体には:req_headers
キーがあり、それは他のヘッダの中に"user-agent"
を含んでいます。これを直接使用するか、https://github.com/elixytics/ua_inspectorのような解析ライブラリを使用して、レイアウトの選択条件を条件付けすることができます。その後、ua_inspectorを使用して、たとえばPhoenix.Controller.put_layout/2
https://hexdocs.pm/phoenix/Phoenix.Controller.html#put_layout/2
でレイアウトを選択することができます。
def some_plug(conn) do
ua = conn.req_params["user-agent"]
case UAInspector.parse(ua).os.name do
"iOS" -> Phoenix.Controller.put_layout(conn, "mobile")
_ -> Phoenix.Controller.put_layout(conn, "desktop")
end
end