sitecore - 如何界定 ​​Sitecore 设备的浏览器代理选择?

标签 sitecore

我尝试在 Sitecore 设备中的浏览器代理字段中输入多种浏览器代理类型,但我尝试过的分隔符都不起作用,有什么想法吗?

当我输入一种浏览器代理类型时,它可以工作,但是当我尝试输入多个浏览器代理类型时,例如:“Chrome、Firefox”,它就无法工作。

这些是我尝试过的所有分隔符([],/\|&;:)。

谢谢!

最佳答案

开箱即用的 Sitecore 设备解析器会尝试将用户代理与代码进行匹配:

return Request.UserAgent.IndexOf(agent, StringComparison.OrdinalIgnoreCase) >= 0;

如您所见,这里没有任何分隔符的位置。

您仍然可以轻松创建自己的设备解析器,并将其插入 管道,然后再(或代替)DeviceResolver 处理器

  <processor type="Sitecore.Pipelines.HttpRequest.DeviceResolver, Sitecore.Kernel"/>

您需要在处理器中做的是找到正确的DeviceItem并将其设置为Sitecore.Context.Device

public class MyDeviceResolver : HttpRequestProcessor
{
    public override void Process(HttpRequestArgs args)
    {
        DeviceItem deviceItem = TryToMatchTheDevice();
        Context.Device = deviceItem;
    }
}

关于sitecore - 如何界定 ​​Sitecore 设备的浏览器代理选择?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11161732/

相关文章:

xpath - X-Path Builder 中的 Sitecore 查询表示法

Sitecore 部分语言回退不回退

powershell - 使用 Powershell 安装 Sitecore 更新包

Sitecore 8、.NET 4.6、返回 404 的 bundle

c# - .PDF 文件的 IIS 7.5 404 错误

lucene - Sitecore Lucene : content delivery server index not updating on publish

Sitecore 8.1体验编辑器很慢

powershell - Sitecore Powershell 函数通过管道传输 ID 字符串到通过管道传输名称字符串

Sitecore - 创建文件下载链接

sitecore - 如何匿名收集sitecore信息