ウィジェットプロバイダ
このページの翻訳はAIによって自動的に行われました。可能な限り正確な翻訳を心掛けていますが、原文と異なる表現や解釈が含まれる場合があります。正確で公式な情報については、必ず英語の原文をご参照ください。
WidgetsProviderは、JS SDKを使用してプラットフォームと統合されたReactアプリケーションのルート レベル プロバイダーSitecore SearchSearch。これにより、内部コンポーネントでSDKクエリフックを使用できます。
クッキー
JS SDKは、ほとんどのSearch顧客がサブドメイン間でCookieを共有するため、訪問者のブラウザーのドメイン レベルでCookieを設定します。ドメインがCookieを制限するトップレベルドメインまたはapexドメインのサブドメインである場合は、publicSuffixの値をtrueに設定する必要があります。
publicSuffixのデフォルト値はfalseです。
認証
認証を行うには、資格情報属性をWidgetsProviderに追加する必要があります。属性は、ドメインがSearchでどのように設定されているかによって異なります。
認証するには:
-
Searchをサブドメインとして設定している場合は、serviceHostを使用します。
-
Searchをサブドメインとして設定していない場合は、apiKeyを使用します。
Cookieの同意
デフォルトでは、JS SDKはCookieを設定して訪問者のインタラクションを追跡し、パーソナライズされた検索結果を提供します。この同意は、WidgetProviderのtrackConsentプロパティを使用して管理できます。
訪問者のインタラクションを追跡するためのCookieの同意を無効にするには:
-
WidgetProviderコンポーネントのtrackConsentをfalseに設定します。これにより、以前に設定されたCookieも削除されます。
Requestミドルウェア
WidgetProviderは、の値としてasync関数を受け入れますrequestMiddleware.このオプションのプロパティを使用して、リクエストの前に関数をミドルウェアとして実行します。
次のコード ブロックは、実装を示しています。
<WidgetsProvider
requestMiddleware={(<define params>) => { <middleware code> }}
>
...sdk code
</WidgetsProvider>インポートパス
import { WidgetsProvider } from '@sitecore-search/react';例
次のコードブロックは、ドメインがSearchで設定されていない場合の認証用の資格情報を持つWidgetsProviderコンポーネントを示しています。
次のコード ブロックでは、この実装の最上位ドメインがCookieを制限するため、publicSuffixがtrueに設定されています。
header_psとfooter_recは、設定に従ってすべてのページに表示されます。
import { WidgetsProvider }from "@sitecore-search/react";
import MyGlobalPreviewSearch from "./widget_components/myGlobalPreviewSearch";
import MyGlobalRecommendationWidget from "./widget_components/myGlobalRecommendationWidget";
const tracking = true;
const Root = () => {
return (
<WidgetsProvider
trackConsent={tracking}
publicSuffix='true'
env='<environment>'
customerKey='<customer key>'
apiKey='<api key>'
requestMiddleware={(<define params>) => { <middleware code> }}
>
<header>
<h1>My Application</h1>
<MyGlobalPreviewSearch rfkId="header_ps" />
</header>
<div class="content">
OTHER WIDGET COMPONENTS GO HERE
</div>
<footer>
<MyGlobalRecommendationWidget rfkId="footer_rec" />
</footer>
</WidgetsProvider>
)};