Die Klasse STSignoInfoDelegate enthält Methoden, die bei bestimmten Ereignissen von den Klassen und STSignoSigner aufgerufen werden. Die Klasse ist Bestandteil der libSignoPDFSigner.
@protocol STSignoInfoDelegate
Anwendung:
@interface ViewController : UIViewController<STSignoInfoDelegate>
Methode willStartSigning:completion:
Diese Methode wird jedes Mal aufgerufen, wenn die Unterschrifterfassung für ein noch nicht unterschriebenes Signaturfeld gestartet werden soll.
-(void)willStartSigning:(NSString*)signatureFieldName completion:(void(^)(BOOL))startSigning
|
Parameter |
Bedeutung |
|
|---|---|---|
|
(NSString*) signatureFieldName |
Name des Signaturfeldes, für das die Unterschrift erfasst werden soll. |
|
|
(void(^)(BOOL)) startSigning |
Callback, der aufgerufen werden muss, um die Unterschrifterfassung abzubrechen oder zu starten. Der Übergabeparameter hat dabei die folgende Bedeutung: |
|
|
|
YES |
Die Unterschrifterfassung soll gestartet werden. |
|
|
NO |
Die Unterschrifterfassung soll abgebrochen werden. |
|
Rückgabewert |
Bedeutung |
|
|
- |
- |
|
Anwendung:
-(void)willStartSigning:(NSString*)signatureFieldName
completion:(void(^)(BOOL))startSigning
{
// do some stuff, e. g. configure the capture dialog
signoVC.signatureCaptureConfig.displayText = signatureFieldName;
// go on with the signature capture
startSigning(YES);
}
Methode signingProcessStarted:
Diese Methode wird aufgerufen, wenn die Unterschrifterfassung für ein noch nicht unterschriebenes Signaturfeld gestartet worden ist.
-(NSMutableArray*)signingProcessStarted:(NSString*)signatureFieldName
|
Parameter |
Bedeutung |
|---|---|
|
(NSString*) signatureFieldName |
Name des Signaturfeldes, für das die Unterschrift erfasst wird. |
|
Rückgabewert |
Bedeutung |
|
NSMutableArray* |
Formularfelder, die vor dem Signieren auf „read only“ gesetzt werden sollen, in Form eines Arrays von STFormFieldInfoDTO-Objekten, oder nil, wenn die Formularfelder nicht verändert werden sollen. Formularfelder, die bereits „read only“ sind, werden nicht verändert. Wenn der Anwender die Unterschrifterfassung abbricht, werden die übergebenen Formularfelder nicht verändert. |
Anwendung:
-(NSMutableArray*)signingProcessStarted:(NSString*)signatureFieldName
{
return [signoVC getFormFields:FormFieldTypeEditableFields];
}
Methode willConfirmSigning:completion:
Diese Methode wird jedes Mal aufgerufen, wenn die Unterschrifterfassung für ein Signaturfeld beendet worden ist und die erfassten Daten in das Dokument eingebracht werden sollen.
-(void)willConfirmSigning:(NSString*)signatureFieldName completion:(void(^)(BOOL))acceptSignature
|
Parameter |
Bedeutung |
|
|---|---|---|
|
(NSString*) signatureFieldName |
Name des Signaturfeldes, für das die Unterschrift erfasst worden ist. |
|
|
(void(^)(BOOL)) acceptSignature |
Callback, der aufgerufen werden muss, um die Unterschrifterfassung abzuschließen. Der Übergabeparameter hat dabei die folgende Bedeutung: |
|
|
|
YES |
Die Unterschrift soll in das Signaturfeld eingebracht werden. |
|
|
NO |
Die Unterschrift soll nicht in das Signaturfeld eingebracht und die Erfassung abgebrochen werden. Das Dokument soll nicht verändert werden. |
|
Rückgabewert |
Bedeutung |
|
|
- |
- |
|
Anwendung:
-(void)willConfirmSigning:(NSString*)signatureFieldName completion:(void(^)(BOOL))acceptSignature
{
// do some stuff and then go on with the signing process
acceptSignature(YES);
}
Methode computeDigitalSignature:completion:
Diese Methode wird aufgerufen, wenn die digitale Signatur berechnet werden muss. Hierzu s. a. die Methoden bzw. und .
-(void)computeDigitalSignature:(NSData*)documentDigest completion:(void(^)(NSData*))addSignatureToDocument
|
Parameter |
Bedeutung |
|---|---|
|
(NSData*) documentDigest |
Prüfsumme (SHA-256) des vorbereiteten Dokuments, welche zur Signaturberechnung verwendet werden muss. |
|
(void(^)(NSData*)) addSignatureToDocument |
Callback, der aufgerufen werden muss, um die Signierung des Dokuments abzuschließen. Der Übergabeparameter muss dabei die berechnete Signatur im PKCS#7-Format enthalten. Wird nil übergeben, wird die Signierung abgebrochen. |
|
Rückgabewert |
Bedeutung |
|
- |
- |
Anwendung:
-(void)computeDigitalSignature:(NSData*)documentDigest completion:(void(^)(NSData))addSignatureToDocument
{
// compute digital signature, i. e. in your backend...
addSignatureToDocument(computedSignature);
}
Methode signingProcessConfirmed:
Diese Methode wird jedes Mal aufgerufen, wenn die Unterschrifterfassung für ein Signaturfeld erfolgreich beendet und das Dokument fertig signiert ist.
-(void)signingProcessConfirmed:(NSString*)signatureFieldName
|
Parameter |
Bedeutung |
|---|---|
|
(NSString*) signatureFieldName |
Name des Signaturfeldes, für das die Unterschrift erfasst worden ist. |
|
Rückgabewert |
Bedeutung |
|
- |
- |
Anwendung:
-(void)signingProcessConfirmed:(NSString*)signatureFieldName
{
// event handling
}
Methode signingProcessCancelled:
Diese Methode wird aufgerufen, wenn die Unterschrifterfassung vom Anwender abgebrochen worden ist, indem er den „Abbrechen“-Button betätigt hat.
-(void)signingProcessCancelled:(NSString*)signatureFieldName
|
Parameter |
Bedeutung |
|---|---|
|
(NSString*) signatureFieldName |
Name des Signaturfeldes, für das die Erfassung abgebrochen worden ist. |
|
Rückgabewert |
Bedeutung |
|
- |
- |
Anwendung:
-(void)signingProcessCancelled:(NSString*)signatureFieldName
{
// event handling
}
Methode signingProcessFailed:errorText:errorCode:
Diese Methode wird aufgerufen, wenn die Unterschrifterfassung oder das Einbringen der Unterschrift in das Dokument fehlgeschlagen ist.
-(void)signingProcessFailed:(NSString*)signatureFieldName errorText:(NSString*)errorText errorCode:(int)errorCode
|
Parameter |
Bedeutung |
|---|---|
|
(NSString*) signatureFieldName |
Name des Signaturfeldes, bei dem die Erfassung fehlgeschlagen ist. |
|
(NSString*)errorText |
Beschreibung des Fehlers |
|
(int)errorCode |
Fehlercode. |
|
Rückgabewert |
Bedeutung |
|
- |
- |
Anwendung:
-(void)signingProcessFailed:(NSString*)signatureFieldName errorText:(NSString*)errorText errorCode:(int)errorCode
{
// event handling
}
Folgende Fehler können auftreten:
|
Fehlercode |
Bedeutung |
|---|---|
|
-120 |
Das Dokument konnte nicht geladen werden. |
|
-121 |
Das Dokument konnte nicht gelesen werden. |
|
-122 |
Das PDF ist passwortgeschützt. |
|
-123 |
Der Schlüsselcontainer wurde nicht gefunden. |
|
-124 |
Der Schlüsselcontainer konnte nicht gelesen werden. |
|
-125 |
Das Passwort des Schlüsselcontainers ist ungültig. |
|
-126 |
Der Schlüsselcontainer hat ein nicht unterstütztes Format. |
|
-127 |
Der Schlüsselcontainer enthält keinen privaten Schlüssel. |
|
-128 |
Fehler beim Schreiben der Datei. |
|
-129 |
Fehler beim Signieren des Dokuments. |
|
-130 |
Der Signaturfeldname ist ungültig. |
|
-131 |
Das Biometrie-Zertifikat konnte nicht gelesen werden. |
|
-132 |
Die erfasste Unterschrift ist zu kurz. |
|
-133 |
Der private Schlüssel konnte nicht gefunden werden. |
|
-134 |
Das Signatur-Zertifikat konnte nicht gelesen werden. |
|
-137 |
Das Dokument konnte nicht signiert werden, da das “NeedAppearances”-Flag auf “true” gesetzt ist. |
|
-136 |
Die digitale Signatur konnte nicht eingebracht werden, weil sie länger ist als in der Eigenschaft digitalSignatureMaxLength angegeben. |
|
-138 |
Das Signatur-Zertifikat ist abgelaufen. |
|
-145 |
Das Dokument konnte aufgrund eines Problems mit einer xref-Tabelle nicht signiert werden. |
|
-146 |
Das Dokument konnte aufgrund eines Zeitstempelproblems nicht signiert werden. |
|
-147 |
Das Signatur-Zertifikat konnte nicht im Schlüsselcontainer gefunden werden. |
|
-150 |
Beim Signieren ist ein unbekannter Fehler aufgetreten. |
Methode signatureInfoPressed
Diese Methode wird aufgerufen, wenn die „Signaturfelder“-Schaltfläche in der Werkzeugleiste angetippt worden ist.
-(BOOL)signatureInfoPressed
|
Parameter |
Bedeutung |
|
|---|---|---|
|
- |
- |
|
|
Rückgabewert |
Bedeutung |
|
|
BOOL |
YES |
Die Bibliothek zeigt den Standarddialog mit den Signaturfeldern des Dokuments an. |
|
|
NO |
Die Bibliothek reagiert nicht mehr auf das Event; üblicherweise würde die App dann das Eventhandling übernehmen. |
Anwendung:
-(BOOL)signatureInfoPressed
{
return YES;
}
Methode documentSaved
Diese Methode wird aufgerufen, wenn die „Speichern“-Schaltfläche in der Werkzeugleiste angetippt worden ist. Üblicherweise sollte in diesem Event aufgerufen werden.
-(BOOL)documentSaved
|
Parameter |
Bedeutung |
|
|---|---|---|
|
- |
- |
|
|
Rückgabewert |
Bedeutung |
|
|
BOOL |
YES |
Die „Speichern“-Schaltfläche soll ausgegraut werden. |
|
|
NO |
Die „Speichern“-Schaltfläche soll nicht ausgegraut werden. |
Anwendung:
-(BOOL)documentSaved
{
// event handling
return YES;
}
Methode backButtonPressed
Diese Methode wird aufgerufen, wenn die „Zurück“-Schaltfläche in der Werkzeugleiste angetippt worden ist. Üblicherweise sollte die View dann entfernt und zurück zur eigenen App-Oberfläche gewechselt werden.
-(void)backButtonPressed
|
Parameter |
Bedeutung |
|---|---|
|
- |
- |
|
Rückgabewert |
Bedeutung |
|
- |
- |
Anwendung:
-(void)backButtonPressed
{
// event handling
}
Methode photoCaptureFailed:errorText:errorCode:
Diese Methode wird aufgerufen, wenn die App keine Nutzungsrechte für die Kamera besitzt oder die Bilderfassung fehlgeschlagen ist.
-(void)photoCaptureFailed:(NSString*)photoFieldName errorText:(NSString*) errorText errorCode:(int)errorCode
|
Parameter |
Bedeutung |
|---|---|
|
(NSString*) photoFieldName |
Name des Fotofeldes, bei dem die Bilderfassung fehlgeschlagen ist. |
|
(NSString*)errorText |
Beschreibung des Fehlers |
|
(int)errorCode |
Fehlercode. |
|
Rückgabewert |
Bedeutung |
|
- |
- |
Anwendung:
-(void)photoCaptureFailed:(NSString*)photoFieldName errorText:(NSString*) errorText errorCode:(int)errorCode
{
// event handling
}
Methode viewerRectConfirmed:inPage:viewerRectId
Diese Methode wird aufgerufen, wenn die Bestätigungs-Schaltfläche eines durch den Aufruf von erzeugten Rechtecks angetippt worden ist. Üblicherweise sollte in diesem Event oder aufgerufen werden.
-(BOOL)viewerRectConfirmed:(CGRect)rectInPdf inPage:(int)page viewerRectId:(int)viewerRectId
|
Parameter |
Bedeutung |
|
|---|---|---|
|
(CGRect)rectInPdf |
Position und Größe des Rechtecks auf der Seite oder CGRectZero, wenn das Rechteck eine ungültige Position hat. |
|
|
(int)page |
Nummer der Seite, auf der das Rechteck bestätigt wurde oder -1, wenn das Rechteck eine ungültige Position hat. Die erste Seitennummer des Dokuments beginnt mit 1. |
|
|
(int)viewerRectId |
Eindeutige ID des erzeugten Rechtecks. |
|
|
Rückgabewert |
Bedeutung |
|
|
BOOL |
YES |
Das Rechteck soll ausgeblendet werden. |
|
|
NO |
Das Rechteck soll weiterhin angezeigt werden. |
Anwendung:
-(BOOL)viewerRectConfirmed:(CGRect)rectInPdf inPage:(int)page viewerRectId:(int)viewerRectId
{
STSignatureFieldInfoDTO *sigField = [[STSignatureFieldInfoDTO alloc] init];
sigField.name = @"New_Signature";
sigField.page = page;
sigField.isSigned = false;
sigField.rectangle = rectInPdf;
int result = [signoVC createNewSignatureField: sigField];
if (result < 0)
{
// error handling
return NO;
}
return YES;
}
Methode viewerRectCancelled:
Diese Methode wird aufgerufen, wenn die Abbrechen-Schaltfläche eines durch den Aufruf von erzeugten Rechtecks angetippt worden ist.
-(void)viewerRectCancelled:(int)viewerRectId
|
Parameter |
Bedeutung |
|---|---|
|
(int)viewerRectId |
Eindeutige ID des erzeugten Rechtecks. |
|
Rückgabewert |
Bedeutung |
|
- |
- |
Anwendung:
-(void)viewerRectCancelled:(int)viewerRectId
{
// event handling
}
Methode notifyLicenceStatus:
Diese Methode wird aufgerufen, um das Ergebnis der Lizenzvalidierung mitzuteilen. Eine App kann hier z. B. den Anwender auffordern, einen Lizenzschlüssel einzugeben.
-(void)notifyLicenceStatus:(LicenceError)licenceError
|
Parameter |
Bedeutung |
|---|---|
|
(LicenceError)licenceError |
Eine Eigenschaft, die einen Wert des mit NS_ENUM definierten Enums Error enthält. Siehe die Lizenzfehler-Tabelle in Kapitel . |
|
Rückgabewert |
Bedeutung |
|
- |
- |
Anwendung:
-(void)notifyLicenceStatus:(LicenceError)licenceError
{
if (licenceError != No_Error)
{
// software is not licensed, prompt dialog for entering a key
}
}
Methode notesModeDidStartSuccessfully
Diese Methode wird aufgerufen, wenn die Methode erfolgreich ausgeführt wurde.
-(void)notesModeDidStartSuccessfully
|
Parameter |
Bedeutung |
|---|---|
|
- |
- |
|
Rückgabewert |
Bedeutung |
|
- |
- |
Anwendung:
-(void)notesModeDidStartSuccessfully
{
// The notes mode was successfully executed.
}
Methode notesModeDidFailToStart:
Die Methode wird aufgerufen, wenn bei der Ausführung der Methode ein Fehler aufgetreten ist.
-(void)onNotesModeFailedToStart:(int)errorCode
|
Parameter |
Bedeutung |
|
|---|---|---|
|
(int)errorCode |
< 0 |
Es ist ein Fehler aufgetreten (s. o.). |
|
Rückgabewert |
Bedeutung |
|
|
- |
- |
|
Anwendung:
-(void)onNotesModeFailedToStart:(int)errorCode
{
//The notes mode could not be executed successfully.
}
Methode notesModeDidFinishWithSavedStatus:
Diese Methode wird aufgerufen, wenn die Methode beendet wurde – unabhängig davon, ob Notizen erfolgreich gespeichert wurden oder keine Notizen vorhanden waren.
-(void)notesModeDidFinishWithSavedStatus:(BOOL)isSaved
|
Parameter |
Bedeutung |
|
|---|---|---|
|
boolean isSaved |
true |
Die erstellten Notizen wurden erfolgreich gespeichert. |
|
|
false |
Es erfolgte keine Speicherung, da keine erstellten Notizen vorhanden waren. |
|
Rückgabewert |
Bedeutung |
|
|
- |
- |
|
Anwendung:
-(void)notesModeDidFinishWithSavedStatus:(BOOL)isSaved
{
if (isSaved)
{
// The notes were saved successfully.
} else {
// There were no notes available.
}
}
Methode notesModeDidFinishWithFailure:
Diese Methode wird aufgerufen, wenn während der Ausführung von ein Fehler auftritt.
-(void)onNotesModeDidFinishWithFailure:(int)errorCode
|
Parameter |
Bedeutung |
|
|---|---|---|
|
(int)errorCode |
< 0 |
Es ist ein Fehler aufgetreten (s. o.). |
|
Rückgabewert |
Bedeutung |
|
|
- |
- |
|
Anwendung:
-(void)onNotesModeFailedToStart:(int)errorCode
{
// The notes could not be saved.
}