Global.asax 51 度云的设备检测 API

Global.asax device detection with 51 degrees cloud API

有人能帮忙吗? 我想使用 51Degrees 的免费服务,而不是 Lite 版本,而是 Cloud API (https://51degrees.com/compare-data-options).

我正在尝试将 Global.asax 设置为 "tablet" 和 "mobile" 的显示模式,以便我可以使用:

以下在不使用 51 度时有效。 有没有人有示例如何将 51 Degrees Cloud API 与 global.asax 集成以过滤 tablet/mobile.

https://51degrees.com/Support/Documentation/APIs/Cloud-API/NET-Cloud

</p> <pre><code>DisplayModeProvider.Instance.Modes.Insert(0, new DefaultDisplayMode("Tablet") { ContextCondition = (ctx => ctx.Request.UserAgent.IndexOf("iPad", StringComparison.OrdinalIgnoreCase) >= 0 || ctx.Request.UserAgent.IndexOf("Android", StringComparison.OrdinalIgnoreCase) >= 0 && ctx.Request.UserAgent.IndexOf("Mobile", StringComparison.OrdinalIgnoreCase) <= 0 ) });

谢谢 汤米

您可以使用链接页面上的第一个 C# 示例获取 DeviceType 的值,它可以是桌面、智能手机或平板电脑(以及其他一些东西)。类似于:

string json = webClient.DownloadString(String.Format(
  "https://cloud.51degrees.com/api/v1/{0}/match?user-agent={1}&values=DeviceType",
  yourLicenceKey, ctx.Request.UserAgent));

dynamic match = Newtonsoft.Json.Linq.JObject.Parse(json);

那么您的平板电脑条件为:

DisplayModeProvider.Instance.Modes.Insert(0, new DefaultDisplayMode("Tablet")
            {
            ContextCondition = (ctx =>
                match.Values.DeviceType.IndexOf("Tablet", StringComparison) != -1))
            });

您可以使用 URL

查询 DeviceType 的可能值
https://cloud.51degrees.com/api/v1/[you licence key]/values?propertyname=DeviceType

或者,使用 return true 或 false 的 IsMobile、IsSmartPhone、IsTablet 和 IsDesktop 属性。