2016-11-15 14 views

答えて

5

Html.programWithFlagsを使用すると、初期化時にJavascriptからElmへ情報を渡すことができます。 initは次のようになりますあなたの

type alias Flags = 
    { userAgent : String } 

init : Flags -> (Model, Cmd Msg) 
init flags = 
    ... 

main = 
    programWithFlags { init = init, ... } 

とJavaScriptから、あなたはフラグを渡すだろうあなたはユーザーエージェントからブラウザを推測することができ、あなたはこのような何かをしたと仮定すると

このように:

var app = Elm.Main.fullscreen({ 
    userAgent: navigator.userAgent 
}); 

サイドノート:ブラウザを完全に検出するのに十分です。より信頼性の高い検出を提供するthis StackOverflow answerが表示されます。いずれにしても、最終結果はinitのElmアプリに何らかのフラグを送ることです。

More info on Flags can be found here.

+0

エルム反応器からこれを行う方法はありますか? –

+1

No - Elm Reactorではカスタムポートまたはフラグを使用できません。しかし、Elm用の軽量のdevサーバーが必要な場合は、[elm-live](https://github.com/tomekwi/elm-live)を参照してください。これはelm-reactorと同じような感じですが、Elmファイルをラップしてインポートするカスタムページが可能です。 –

+0

私はelm-liveがまだ0.18をサポートしているとは思わない – Schpaencoder

関連する問題