По причинам Мне нужно проанализировать то, что выглядит, отформатировано как строка запроса (т.е. key=value&another_key=another_value
), но находится во фрагменте URL, например:
http://example.com/callback#id_token=my_long_jwt&state=some_state
Если бы #
был ?
, тогда было бы легко использовать <?>
, но я не могу понять, как (или если) я могу использовать Url.Parser.Query
, когда это во фрагменте.
Я могу получить фрагмент как String
:
import Url.Parser as Parser
import Url.Parser exposing ((</>))
type Route = Callback String | NotFound
route : Parser.Parser (Route -> a) a
route = Parser.map Callback (Parser.s "callback" </> fragmentWithDefault )
fragmentWithDefault : Parser.Parser (String -> a) a
fragmentWithDefault = Parser.fragment <| Maybe.withDefault "no_fragment"
toRoute : Url.Url -> Route
toRoute url = Maybe.withDefault NotFound (Url.Parser.parse route url)
Но в Url.Parser.Query
нет API, который запускает Url.Parser.Query.Parser
, для которого я могу запустить String
в Callback
.