Häufig wird signoSign/Universal in eine bereits bestehende Webanwendung als iFrame eingebettet. Ein Beispiel dazu ist bei laufender Anwendung in unserem REST-API Showcase zu finden, sofern die devTools aktiviert sind. Für diese Art der Integration stellt signoSign/Universal öffentliche Javascript- Methoden und - Events bereit, die ebenfalls in diesem Kapitel dokumentiert sind.
Allgemeine Hinweise
Sofern die umschließende Webanwendung und signoSign/Universal unter der gleichen Domain betrieben werden, sollte eine iFrame-Integration problemlos möglich sein. Sollte es jedoch auch in diesem Szenario zu Problemen kommen, ist eventuell die ssmPublicUrl-Einstellung nicht richtig gesetzt und beachten Sie, dass die meisten Browser kein Mischen von HTTP-Inhalten auf HTTPS-Seiten (und umgekehrt) zulassen.
Bei Problemen mit der Integration kann in den vielen Fällen die Javascript-Konsole des Browsers Aufschluss über die Ursache geben.
Cross-Origin-Resource Sharing
Sofern die umschließende Webanwendung und signoSign/Universal nicht auf der gleichen Domain betrieben werden, muss das Einbetten von signoSign/Universal als iFrame auf HTTP-Protokollebene erlaubt sein. Das bedeutet, dass jeder HTTP-Response die Header Access-Control-Allow-Origin und Access-Control-Allow-Methods hinzugefügt werden müssen.
Das Einfügen dieser HTTP-Header kann entweder durch Konfiguration des Servers oder durch Aktivierung des integrierten CORS-Filters. Die Konfiguration des CORS-Filters ist bereits in der web.xml von signoSign/Universal enthalten, ist aber auskommentiert. Die web.xml befindet sich im WEB-INF-Ordner des WARs bzw. EARs.
Cookies
Die Authentifizierung an signoSign/Universal wird in Cookies festgehalten. Bei Betrieb im iFrame wird das signoSign/Universal-Cookie aber von der umschließende Webanwendung angefragt. Läuft die umschließende Webanwendung unter einer anderen Domain als signoSign/Universal, muss dieses Cookie den Zugriff von fremden Domains ausdrücklich erlauben.
Dieses Verhalten wird mit dem SameSite-Attribut eines Cookies definiert und muss für den iFrame-Betrieb den Wert Lax haben. Das kann in der Regel am verwendeten Server konfiguriert werden.
Speziell für den Apache Tomcat, wird eine context.xml im META-INF-Ordner des signoSign/Universal-WAR ausgeliefert. Darin wird das SameSite-Attribut im Auslieferungszustand auf Strict gesetzt.
Öffentliche JavaScript-Funktionen
Wird signoSign/Universal in einem iFrame aus einer umschließenden Anwendung heraus aufgerufen, existiert eine Menge an öffentlich dokumentierten Funktionen im JavaScript-Code, die über das iFrame-Element ausgeführt werden können.
Folgender Code-Ausschnitt führt beispielhaft die Speichern-Funktion aus:
iframe = document.getElementById("iframe");
iframe.contentWindow.viewerFunctions.saveDocument();
Folgende Funktionen stellt der Viewer bereit:
Funktion |
Beschreibung |
---|---|
|
Meldet die aktuelle Session am Server ab. |
|
Zeigt die Seiten des Dokuments maximal in der gerenderten Größe an. |
|
Richtet das Dokument an der Seitenhöhe aus. Das bedeutet, dass die obere und untere Kante des Dokumentes zu sehen sind. |
|
Richtet das Dokument an der Seitenbreite aus. Das bedeutet, dass die linke und rechte Kante des Dokumentes zu sehen sind. |
|
Zeigt das Thumbnail-Menü der Anwendung an, über das zu einer bestimmten Seite geblättert werden kann. |
|
Startet den Dialog zum Teilen eines Dokuments. |
|
Zeigt einen Dialog mit einer Liste aller im Dokument enthaltenen leeren Signaturfelder an. |
|
Startet den Signaturprozess. |
|
Startet den Prozess zum Hinzufügen eines weiteren Signaturfeldes. |
|
Startet den Prozess zum Einbringen einer Notiz ins Dokument. |
|
Startet den Speichernprozess. |
|
Blättert zur nächsten Seite des Dokuments. |
|
Blättert zur vorherigen Seite des Dokuments. |
|
Öffnet den Dialog, der angezeigt wird, wenn ein Dokument ungespeicherte Änderungen enthält. Sofern diese Funktion explizit aufgerufen wird, wird der Dialog angezeigt unabhängig davon, ob sich Änderungen im Dokument befinden. |
|
Blättert zu einer bestimmten Seite. Der Parameter pageNumber bestimmt die Nummer der Seite, die angezeigt werden soll. Die Werte müssen |
JavaScript-Events
Wird signoSign/Universal als iFrame in eine andere Anwendung eingebettet, kann die umschließende Anwendung über bestimmte Ereignisse informiert werden.
Abhängig vom Ereignis kann das Verhalten von signoSign/Universal beeinflusst werden, indem innerhalb des definierten Eventhandlers die Methode preventDefault des an das Event übergebenen Objektes aufgerufen wird.
Der folgende Code-Ausschnitt zeigt wie eine umschließende Anwendung einen Eventhandler für das SSUMessageEvent definiert.
iframe = document.getElementById("iframe");
iframe.contentWindow.addEventListener("SSUMessageEvent", function(e) {
console.info("SSUMessageEvent");
console.info(e.detail.severity);
console.info(e.detail.message);
});
SSUMessageEvent
Wird ausgelöst, wenn signoSign/Universal eine Information oder einen Fehler anzeigt.
Standardverhalten:
signoSign/Universal zeigt die auftretende Meldung als separaten Dialog an.
PreventDefault():
Die auftretende Meldung wird nicht in einem Dialog in signoSign/Universal angezeigt. Die umschließende Anwendung kann die Meldung selbst behandeln.
Parameter |
Beschreibung |
Attribute |
Attributbeschreibung |
Werte |
---|---|---|---|---|
severity |
Beschreibt die Art der Meldung. |
- |
- |
|
message |
Der lokalisierte Meldungstext. |
- |
- |
|
MessageKey |
Der Schlüssel-Wert, unter dem die lokalisierte Nachricht in den Locales zu finden ist. |
- |
- |
|
SSUSignaturePerformedEvent
Wird ausgelöst, wenn eine Unterschrift geleistet und an den Server gesendet wird.
Parameter |
Beschreibung |
Attribute |
Attributsbeschreibungen |
Werte |
---|---|---|---|---|
signatureFieldsStatus |
Ein Array aus Objekten, die Informationen zu allen im Dokument befindlichen Signaturfeldern liefern. |
isSigned |
Zeigt an, ob das Signaturfeld unterschrieben ist. |
|
isMandatory |
Zeigt an, ob es sich um ein obligatorischen Signaturfeld handelt. |
|
||
htmlId |
Die HTML-ID des Signaturfeldes. |
|
||
formFieldName |
Der Formularfeldname des Signaturfeldes im PDF. |
|
||
page |
Die Nummer der Seite, auf der sich das Signaturfeld befindet. |
|
||
signedSignatureFieldIndex |
Der Index des Signaturfeldes, welches unterschrieben wurde. |
- |
- |
|
SSUDocumentSavedEvent
Wird ausgelöst, sobald der Speichernprozess durchgeführt wurde.
Parameter |
Beschreibung |
Attribute |
Attributsbeschreibungen |
Werte |
---|---|---|---|---|
signatureFieldsStatus |
Ein Array aus Objekten, die Informationen zu allen im Dokument befindlichen Signaturfeldern liefern. |
isSigned |
Zeigt an, ob das Signaturfeld unterschrieben ist. |
|
isMandatory |
Zeigt an, ob es sich um ein obligatorischen Signaturfeld handelt. |
|
||
htmlId |
Die HTML-ID des Signaturfeldes. |
|
||
formFieldName |
Der Formularfeldname des Signaturfeldes im PDF. |
|
||
page |
Die Seitennummer auf der sich das Signaturfeld befindet. |
|
||
successful |
Ein boolescher Wert, ob der Speichernprozess erfolgreich war oder nicht. |
- |
- |
|
SSUUpdateFormFieldsEvent
Wird ausgelöst, wenn vom Anwender geänderte Formularfelder mit dem Backend synchronisiert werden.
Standardverhalten:
Alle Eingaben des Anwenders werden an den Server übertragen und in die serverseitige Repräsentation des Dokuments geschrieben.
PreventDefault():
Verhindert die Synchronisation zwischen Front- und Backend. Die Eingaben werden nicht in das Dokument eingebracht.
Parameter |
Beschreibung |
Attribute |
Attributsbeschreibungen |
Werte |
---|---|---|---|---|
formFieldStatus |
Ein Array aus Objekten, welche Informationen über jedes einzelne Formularfeld enthält. |
oldValue |
Der Wert des Formularfeldes vor der Änderung. |
|
value |
Neuer Wert des Formularfelds. |
|
||
htmlId |
Die HTML-ID des Formularfelds. |
|
||
formFieldName |
Name des Formularfeldes im PDF. |
|
||
isDirty |
Zeigt an, ob der Wert des Feldes sich geändert hat. |
|
SSUPadOpenedEvent
Wird ausgelöst, sobald eine Verbindung zu einem Signaturgerät geöffnet wird.
Parameter |
Beschreibung |
Attribute |
Attributbeschreibung |
Werte |
---|---|---|---|---|
padType |
Die Angabe des Pad-Typs als numerischer Wert. |
- |
- |
|
padSerial |
Die Seriennummer des geöffneten Pads. |
- |
- |
|
padVersion |
Die Firmware-Version des geöffneten Pads. |
- |
- |
|
SSUPadClosedEvent
Wird ausgelöst, sobald eine Verbindung zu einem Signaturgerät geschlossen wurde.
Parameter |
Beschreibung |
Attribute |
Attributbeschreibung |
Werte |
---|---|---|---|---|
padType |
Die Angabe des Pad-Typs als numerischer Wert. |
- |
- |
|
padSerial |
Die Seriennummer des geöffneten Pads. |
- |
- |
|
padVersion |
Firmware-Version des geöffneten Pads. |
- |
- |
|
SSUPadStateChangedEvent
Wird ausgelöst, sobald sich der Status des geöffneten Pads ändert. Ein Signaturgerät kann einen der folgenden Status annehmen:
Status |
Beschreibung |
---|---|
READY |
Das Signaturgerät ist bereit, eine Unterschrift zu erfassen. |
PREPARING |
Das Signaturgerät hat begonnen, den Signaturvorgang vorzubereiten. |
CANCELLING |
Ein Signaturvorgang wurde abgebrochen. |
RETRYING |
Ein Signaturvorgang wurde neugestartet. |
SKIPPING |
Ein Signaturvorgang wurde übersprungen. |
CONFIRMING |
Ein Signaturvorgang wurde bestätigt. |
STOPPED |
Ein Signaturvorgang wurde gestoppt. |
PAD_CERT_VALIDATION_FAILED |
Wird ausgelöst, wenn das im Signaturgerät gespeicherte Zertifikat sich nicht gegen die am Server definierte Zertifikatskette prüfen lässt. |
NO_PAD_FOUND |
Wird ausgelöst, wenn kein Signaturgerät gefunden werden konnte. |
Parameter |
Beschreibung |
Attribute |
Attributbeschreibung |
Werte |
---|---|---|---|---|
padStatus |
Der Status, den das Signaturgerät angenommen hat. |
- |
- |
|
SSUSignatureStartEvent
Wird ausgelöst, sobald ein Signaturprozess gestartet wird.
Standardverhalten:
Der Signierdialog wird geöffnet.
PreventDefault():
Das Öffnen des Signierdialogs wird unterbunden.
Parameter |
Beschreibung |
Attribute |
Attributbeschreibung |
Werte |
---|---|---|---|---|
isMandatory |
Die Angabe, ob es sich bei der gestarteten Signatur um ein Pflichtfeld handelt. |
- |
- |
|
htmlId |
Die ID des DOM-Elements innerhalb des Viewers |
- |
- |
|
formFieldName |
Der technische Formularfeldname des Signaturfeldes im PDF. |
- |
- |
|
page |
Die Seite im PDF, auf dem sich das Signaturfeld befindet. |
- |
- |
|
SSUFormFieldFocusEvent
Wird ausgelöst, wenn ein Formularfeld fokussiert wird.
Standardverhalten:
Das angesprochene Formularfeld wird fokussiert.
PreventDefault():
Das fokussieren des Formularfeldes wird unterbunden.
Parameter |
Beschreibung |
Attribute |
Attributbeschreibung |
Werte |
---|---|---|---|---|
isMandatory |
Die Angabe, ob es sich bei der gestarteten Signatur um ein Pflichtfeld handelt. |
- |
- |
|
htmlId |
Die ID des DOM-Elements innerhalb des Viewers. |
- |
- |
|
formFieldName |
Der technische Formularfeldname des Signaturfeldes im PDF. |
- |
- |
|
page |
Die Seite im PDF, auf dem sich das Signaturfeld befindet. |
- |
- |
|
type |
Gibt den Typ des Formularfeldes an. |
- |
- |
|
SSUDocumentLoadedEvent
Wird ausgelöst, sobald das Dokument fertig im Viewer geladen ist. Diesem Event werden keine Parameter übergeben.
SSUPageNumberChangeEvent
Wird ausgelöst, wenn zu einer anderen Seite im Dokument gewechselt wird.
Parameter |
Beschreibung |
Attribute |
Attributbeschreibung |
Werte |
---|---|---|---|---|
newPageNumber |
Die Seitennummer der neu anzuzeigenden Seite. |
- |
- |
|