问题标签 [51degrees]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
1 回答
503 浏览

asp.net-mvc - Global.asax 设备检测与 51 度云 API

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

我正在尝试将我的 Global.asax 设置为“平板电脑”和“手机”的显示模式,以便我可以使用:

  • 索引.cshtml
  • index.tablet.cshtml
  • index.mobile.cshtml

以下在不使用 51 度时有效。有没有人举个例子,如何将 51 度云 API 与 global.asax 集成以过滤平板电脑/移动设备。

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

谢谢汤米

0 投票
2 回答
1401 浏览

c# - 检查移动设备是否正在请求桌面站点

我在我的 MVC 网站上使用 51 度作为为我的页面提供服务的自适应方法。一切运作良好。

我最近添加了输出缓存,并使用它VaryByCustom来检查它是移动设备还是桌面设备:

但是我遇到了一个问题,如果第一个浏览该网站的移动用户请求了桌面版本,这将为所有移动用户缓存。

我需要更改它 GetMobileCustomString以检查它是否是请求桌面站点的移动设备。有没有办法做到这一点?

更新

由于对此已开放赏金,我想我会提供更新:

首先,这并不是我最初想的那样导致桌面页面被缓存的第一次加载,所以在对此进行了大量搜索、研究和测试后,我觉得桌面页面永远不应该为移动版本缓存(如果你在 MVC 5 上)。在执行移动请求时,我已经逐步完成了代码,当它通过自定义到达时,它显示context.Request.Browser.IsMobileDevicefalse.

不确定是什么导致桌面站点为移动站点缓存 - 可能是MVC 4 中的错误的遗留问题。它似乎是随机的(即,有一天它会很好,然后另一天它会出于某种原因为桌面站点提供服务)并且回收应用程序池将始终修复它。

我还发现我可以使用以下方法获取覆盖的浏览器:

但是好像用处不大

0 投票
1 回答
164 浏览

sitecore - Sitecore 8.2 是否支持 51Degree?

在我开始为 Sitecore 设置设备检测之前,有两个选项可用 51Degree 和 Sitecore 设备检测服务。

我已经为 Sitecore 7.5 使用了 51Degree,但无法找到与最新版本的 Sitecore 相关的任何信息,即病房中的 8.0。

他们还在支持 Sitecore 吗?还是打折?

谢谢

0 投票
1 回答
102 浏览

redirect - 51 Degrees Mobi 不断进行不需要的重定向。如何停止?

我最近刚刚将 51 度 Mobi Nuget 包安装到 Visual Studio 2015。我遇到了一个令人讨厌的功能,我无法弄清楚如何关闭。当我使用移动设备浏览我的网站时,它会自动将设备重定向到 /Mobile/Default.aspx。

我不想要这个。我希望设备转到请求的 URL。根据在此处找到的文档,它说

此元素确定应如何重定向移动设备。如果省略,重定向将被禁用。

这根本不像描述的那样工作。我已在 51Degrees.config 文件中删除了该元素及其 SectionGroup,但这种不需要的重定向仍在继续。我如何真正禁用这个烦人的功能?

谢谢

0 投票
1 回答
1083 浏览

c# - 在 ASP.NET 中是否可以仅从 HTTP 请求的用户代理字符串派生浏览器 MajorVersion?

我们有一个应用程序Request.Browser.MajorVersion用作缓存键的一部分。我们面临一个挑战,以确定哪个缓存键用于一组历史请求。为此,我们正在分析 IIS 日志,因此需要确定Request.Browser.MajorVersion每个请求的 ASP.NET 的值。是否可以仅从用户代理字符串派生出来?

更新

我最初假设 的值是Request.Browser.MajorVersion直接取自用户代理字符串的版本。但是,在确认这一理论的调试会话中,我看到了这一点:

调试会话屏幕截图

我本来希望Request.Browser.MajorVersion是 61 岁,而不是 44 岁。谁能提供任何关于为什么这些值不同的见解,以及我如何能够自信地判断Request.Browser.MajorVersion给定用户代理字符串的值是什么?

更新 2

我发现 ASP.NET 使用一组模板将HttpBrowserCapabilities对象集构建为Request.Browser. 这些可在此处获得:

%SystemRoot%\Microsoft.NET\Framework[版本]\Config\Browsers

查看模板,它们都使用正则表达式来解析用户代理字符串(我在下面粘贴了 chrome.browser 的内容),这表明Request.Browser.MajorVersion 应该与用户代理字符串中的值相对应。所以仍然不知道为什么我的本地应用程序返回 44 作为该值。

更新 3

我终于明白了这一点。事实证明,我正在调试的应用程序正在使用名为51 Degrees的第三方服务,该服务拦截请求并应用自己的请求标头解析,在本例中使用安装在应用程序服务器上的本地数据库。这个数据库已经过时了,因此对最近的浏览器版本产生了奇怪的结果。我在上面更新 2 中的详细信息适用于普通 ASP.NET 应用程序,但这确实解释了为什么我的结果与普通测试环境不同。感谢所有抽出时间帮助我调查此事的人。

0 投票
1 回答
65 浏览

asp.net - 使用 ASP.NET 3.5 重定向到移动站点

如果用户在手机或平板电脑上,我希望用户被重定向到我的网站的移动版本。

我希望使用 51 Degrees,但他们说它需要 .net 4.0 才能工作,我无法从 3.5 升级。

有谁知道解决这个问题的任何方法?

0 投票
1 回答
54 浏览

51degrees - ASP.Net MVC 和 51Degrees - 设备检测问题

下面的代码在本地工作,但在服务器上托管时不起作用(Win 2016)。有任何想法吗?

公共抽象类 BaseController :控制器 {

. . . . .

0 投票
1 回答
61 浏览

c# - 如何在 Razor 页面中使用 51 度移动设备检测?

我有一个需要检测移动设备的 ASP.Net Core 5.0 Web 应用程序。我使用 Visual Studio Nuget 包管理器下载了 51 度 NuGet 包,但我不知道如何从 Razor 页面使用它,也找不到任何与 Razor 页面一起使用的示例。

到目前为止,看起来我能找到的最好的例子是https://51degrees.com/developers/documentation/apis/netv32/tutorials/getting-started但它说“本教程假设您是从 51Degrees Visual 中构建的工作室解决方案。” 像大多数人一样,我已经为我的应用程序提供了一个解决方案,我需要使用 51 度,并且无法创建新的 51 度 Visual Studio 解决方案。另外,该示例的代码比我想要使用的要多得多。我想要像 Request.Browser.IsMobileDevice 这样的东西,而不需要更多的工作。