Sitecoreデバイスの[ブラウザエージェント]フィールドに複数のブラウザエージェントタイプを入力しようとしていますが、試した区切り文字はどれも機能しません。
単一のブラウザエージェントタイプを入力すると機能しますが、たとえば「Chrome、Firefox」のように複数のエージェントタイプを入力しようとすると、機能しません。
これらはすべて私が試した区切り文字です([]、/ \ |&;:)。
ありがとう!
Sitecoreデバイスの[ブラウザエージェント]フィールドに複数のブラウザエージェントタイプを入力しようとしていますが、試した区切り文字はどれも機能しません。
単一のブラウザエージェントタイプを入力すると機能しますが、たとえば「Chrome、Firefox」のように複数のエージェントタイプを入力しようとすると、機能しません。
これらはすべて私が試した区切り文字です([]、/ \ |&;:)。
ありがとう!
すぐに使用できるSitecoreデバイスリゾルバーは、ユーザーエージェントをコードと照合しようとします。
return Request.UserAgent.IndexOf(agent, StringComparison.OrdinalIgnoreCase) >= 0;
ご覧のとおり、ここにはデリメータを置く場所がありません。
それでも、独自のデバイスリゾルバーを簡単に作成し、 DeviceResolverプロセッサの前(または代わりに)に<httpRequestBegin>パイプラインにプラグインすることができます。
<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;
}
}