gpt4 book ai didi

f# - 在 WebSharper 中显示移动页面

转载 作者:行者123 更新时间:2023-12-01 13:47:35 24 4
gpt4 key购买 nike

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

最佳答案

WebSharper 中的Context 对象有一个包含原始上下文的Environment 字典。您可以通过它访问 Request.Browser.IsMobileDevice。使用 UI.Next 客户端-服务器模板,您可以执行如下操作:

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
)

关于f# - 在 WebSharper 中显示移动页面,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34733814/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com