ビューアは、多数のビューアSDKコンポーネントで構築されています。 ほとんどの場合、Webページは、SDKコンポーネントAPIと直接やり取りする必要はありません。一般的なニーズはすべて、ビューアのAPI自体で扱われています。
ただし、高度な使用例によっては、WebページがgetComponent()
ビューアAPIを使用して内部SDKコンポーネントへの参照を取得し、SDK自体のAPIを柔軟に使用する必要があります。
ビューアでSDKコンポーネントの読み込みと初期化に使用される名前空間は、ビューアが動作している環境によって異なります。 ビューアがAEM(Adobe Experience Manager)で実行されている場合、ビューアはSDKコンポーネントをs7viewers.s7sdk
名前空間に読み込みます。 同様に、Scene7パブリッシングシステムから提供されるビューアは、SDKをs7classic.s7sdk
に読み込みます。
どちらの場合も、ビューア内のSDKが使用する名前空間のプレフィックスはs7viewers
またはs7classic
です。 また、SDKユーザーガイドまたはSDK APIドキュメントで使用されている通常のs7sdk
名前空間とは異なります。 そのため、内部ビューアコンポーネントと通信するカスタムアプリケーションコードを作成する場合は、完全修飾されたSDK名前空間を使用することが重要です。
例えば、StatusEvent.NOTF_VIEW_READY
イベントをリッスンする予定で、ビューアがAEMから供給される場合、完全修飾イベントタイプはs7viewers.s7sdk.event.StatusEvent.NOTF_VIEW_READY
で、イベントリスナーコードは次のようになります。
<instance>.setHandlers({
"initComplete":function() {
var zoomView = <instance>.getComponent("zoomView");
zoomView.addEventListener(s7viewers.s7sdk.event.StatusEvent.NOTF_VIEW_READY, function(e) {
console.log("view ready");
}, false);
}
});
The same code for the viewer served from Scene7 Publishing System looks like the following:
<instance>.setHandlers({
"initComplete":function() {
var zoomView = <instance>.getComponent("zoomView");
zoomView.addEventListener(s7classic.s7sdk.event.StatusEvent.NOTF_VIEW_READY, function(e) {
console.log("view ready");
}, false);
}
});