如何在 Elm 中检测浏览器
How to detect browser in Elm
如何从 Elm 检测浏览器?
具体来说,我希望能够判断网络应用程序是否在平板电脑上 运行(Safari 在 iPad 等上)。
您可以使用 Html.programWithFlags
在初始化时将信息从 Javascript 传递给 Elm。
假设您可以从用户代理推断浏览器,您可以这样做:
type alias Flags =
{ userAgent : String }
您的 init
看起来像这样:
init : Flags -> ( Model, Cmd Msg )
init flags =
...
main =
programWithFlags { init = init, ... }
从 Javascript 开始,您将像这样传递标志:
var app = Elm.Main.fullscreen({
userAgent: navigator.userAgent
});
旁注:用户代理可能不足以完全检测浏览器。您可以看到 this Whosebug answer 提供了更可靠的检测。无论哪种方式,最终结果都是您会在初始化时向 Elm 应用程序发送某种标志。
您可以使用 elm-vendor
包。
http://package.elm-lang.org/packages/coreytrampe/elm-vendor/latest
如何从 Elm 检测浏览器?
具体来说,我希望能够判断网络应用程序是否在平板电脑上 运行(Safari 在 iPad 等上)。
您可以使用 Html.programWithFlags
在初始化时将信息从 Javascript 传递给 Elm。
假设您可以从用户代理推断浏览器,您可以这样做:
type alias Flags =
{ userAgent : String }
您的 init
看起来像这样:
init : Flags -> ( Model, Cmd Msg )
init flags =
...
main =
programWithFlags { init = init, ... }
从 Javascript 开始,您将像这样传递标志:
var app = Elm.Main.fullscreen({
userAgent: navigator.userAgent
});
旁注:用户代理可能不足以完全检测浏览器。您可以看到 this Whosebug answer 提供了更可靠的检测。无论哪种方式,最终结果都是您会在初始化时向 Elm 应用程序发送某种标志。
您可以使用 elm-vendor
包。
http://package.elm-lang.org/packages/coreytrampe/elm-vendor/latest