例:getoffers()
および applyOffers()
を使用した Promise 連結
getOffers()
promise が解決されたときに triggerView()
を実行するには、次の例に示すように、最終ブロックで triggerView()
を実行することが重要です。 これは、VEC がオーサリングモードで Views
を検出するために必要です。
adobe.target.getOffers({
'request': {
'prefetch': {
'views': [{
'parameters': {}
}]
}
}
}).then(function(response) {
// Apply Offers
adobe.target.applyOffers({
response: response
});
}).catch(function(error) {
console.log("AT: getOffers failed - Error", error);
}).finally(() => {
// Trigger View call, assuming pageView is defined elsewhere
adobe.target.triggerView(pageView, {
page: true
});
console.log('AT: View triggered on : ' + pageView);
});
例:Adobe Visual Editing Helper extension との triggerView()
の最適な互換性
Adobe Visual Editing Helper 拡張機能を使用する場合は、次の点を考慮してください
Google の Chrome 拡張機能の新しい V3 マニフェストポリシーにより、Visual Editing Helper extension は VEC の Target ライブラリを読み込む前に DOMContentLoaded
イベントを待機する必要があります。 この遅延により、オーサリングライブラリの準備が整う前に web ページで triggerView()
呼び出しが実行され、読み込み時にビューが入力されない場合があります。
この問題を軽減するには、ページ load
イベントのリスナーを使用します。
実装の例を次に示します。
function triggerViewIfLoaded() {
adobe.target.triggerView("homeView");
}
if (document.readyState === "complete") {
// If the page is already loaded
triggerViewIfLoaded();
} else {
// If the page is not yet loaded, set up an event listener
window.addEventListener("load", triggerViewIfLoaded);
}
recommendation-more-help