首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >在WebSharper中显示移动页面

在WebSharper中显示移动页面
EN

Stack Overflow用户
提问于 2016-01-12 00:49:07
回答 1查看 108关注 0票数 3

我有一个WebSharper网站,我希望它在移动设备上有一个不同的UI。我希望服务器响应不同的HTML取决于用户是否在移动设备上。我可以看到如何检查用户是否在ASP.NET中的移动设备上,但我不知道如何将其移植到WebSharper。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2016-01-18 14:02:40

Context对象在WebSharper中有一个包含原始上下文的Environment字典。你可以通过这个联系到Request.Browser.IsMobileDevice。使用UI.Next客户端-服务器模板,您可以这样做:

代码语言:javascript
复制
module Site

open WebSharper
open WebSharper.Sitelets
open WebSharper.UI.Next
open WebSharper.UI.Next.Server

type EndPoint =
    | [<EndPoint "/">] Home

open WebSharper.UI.Next.Html

type Page = { Desktop: Doc; Mobile: Doc }
let mkPage desktop mobile = { Desktop = desktop; Mobile = mobile }

let HomePage =
    mkPage
    <| h1 [text "Desktop page!"]
    <| h1 [text "Mobile page!"]

let PickPage (ctx : Context<_>) page =
    let context = ctx.Environment.["HttpContext"] :?> System.Web.HttpContextWrapper
    if context.Request.Browser.IsMobileDevice then page.Mobile
    else page.Desktop
    |> Content.Page

[<Website>]
let Main =
    Application.MultiPage (fun ctx endpoint ->
        match endpoint with
        | EndPoint.Home -> PickPage ctx HomePage
    )
票数 3
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/34733814

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档