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" 的显示模式,以便我可以使用:
- index.cshtml
- index.tablet.cshtml
- index.mobile.cshtml
以下在不使用 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 属性。
有人能帮忙吗? 我想使用 51Degrees 的免费服务,而不是 Lite 版本,而是 Cloud API (https://51degrees.com/compare-data-options).
我正在尝试将 Global.asax 设置为 "tablet" 和 "mobile" 的显示模式,以便我可以使用:
- index.cshtml
- index.tablet.cshtml
- index.mobile.cshtml
以下在不使用 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 属性。