我正在尝试为Sitecore设备中的浏览器代理字段输入多个浏览器代理类型,但是我尝试过的分隔符都没有,有什么想法吗?
当我输入单个浏览器代理类型时,它可以正常工作,但是当我尝试输入多个时,例如:“Chrome,Firefox”,那么它无法正常工作。
这些都是我尝试过的分隔符([],/ \ |&amp ;;:)。
谢谢!
答案 0 :(得分:2)
开箱即用Sitecore设备解析程序尝试将用户代理与代码匹配:
return Request.UserAgent.IndexOf(agent, StringComparison.OrdinalIgnoreCase) >= 0;
所以你看到这里没有任何分界符号。
您仍然可以轻松创建自己的设备解析程序,并在 DeviceResolver 处理器
之前(或代替)插入&lt; httpRequestBegin&gt; 管道 <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;
}
}