Der Viewer besteht aus vielen Viewer-SDK-Komponenten. Normalerweise muss die Webseite nicht direkt mit der SDK-Komponenten-API interagieren. alle allgemeinen Anforderungen werden in der Viewer-API selbst behandelt.
Einige erweiterte Anwendungsfälle erfordern jedoch, dass die Webseite mithilfe der getComponent()
Viewer-API verwenden und dann die gesamte Flexibilität der APIs des SDK selbst nutzen.
Der Namespace, der zum Laden und Initialisieren von SDK-Komponenten durch den Viewer verwendet wird, hängt von der Umgebung ab, in der der Viewer ausgeführt wird. Wenn der Viewer in Adobe Experience Manager ausgeführt wird, lädt der Viewer SDK-Komponenten in s7viewers.s7sdk
Namespace. Und der von Dynamic Media Classic bereitgestellte Viewer lädt das SDK in s7classic.s7sdk
.
In beiden Fällen hat der vom SDK im Viewer verwendete Namespace entweder s7viewers
oder s7classic
als Präfix. Und es unterscheidet sich von der Ebene s7sdk
Namespace, der im SDK-Benutzerhandbuch oder in der SDK-API-Dokumentation verwendet wird.
Daher ist es wichtig, beim Schreiben von benutzerdefiniertem Anwendungs-Code, der mit internen Viewer-Komponenten kommuniziert, einen vollständig qualifizierten SDK-Namespace zu verwenden.
Wenn Sie beispielsweise die StatusEvent.NOTF_VIEW_READY
-Ereignis und der Viewer vom Experience Manager bereitgestellt wird, lautet der vollqualifizierte Ereignistyp s7viewers.s7sdk.event.StatusEvent.NOTF_VIEW_READY
und der Ereignis-Listener-Code sieht in etwa wie folgt aus:
<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 viewer served from Dynamic Media Classic will look like this:
<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);
}
});