我正在使用Phoenix框架创建一个网站。
我想使用不同的布局和模板,具体取决于用户是使用PC还是智能手机。
所以,我想通过检查用户代理来切换布局和模板。
检查用户代理和切换布局和模板的最佳方法是什么? 或者,您知道任何有用的库吗?
答案 0 :(得分:4)
您可以在插头中轻松完成此操作。传递给您的插件的conn
结构有一个:req_headers
键,其中包含"user-agent"
的其他标题。您可以直接使用它,也可以使用https://github.com/elixytics/ua_inspector之类的解析库来条件化您的布局选择。然后,您可以使用Phoenix.Controller.put_layout/2
https://hexdocs.pm/phoenix/Phoenix.Controller.html#put_layout/2
例如使用ua_inspector:
def some_plug(conn) do
ua = get_req_header(conn, "user-agent")
case UAInspector.parse(ua).os.name do
"iOS" -> Phoenix.Controller.put_layout(conn, "mobile")
_ -> Phoenix.Controller.put_layout(conn, "desktop")
end
end