Transport de host XFA explicite
Unité : HPDFXFARuntime
Déclaration
Options := TXFAWidgetRuntimeOptions.Default;
Options.ScriptOptions.EnableJavaScript := True;
Options.HostTransport := ApplicationHost.Transport;
Options.OnHostTransactionCompleted := ApplicationHost.Completed;
Comportement
Configurez des callbacks applicatifs explicites pour exécuter xfa.host.messageBox, response, beep, print, gotoURL, submitForm, importData et exportData, et FormCalc Get, Post et Put
La bibliothèque n'invoque automatiquement aucun dialog, lecteur, requête réseau ni transfert de fichier ; le callback implémente le transport applicatif et retourne une réponse typée
Chaque requête dispatchée s'exécute une fois dans une transaction runtime englobante ; les retries de suspension QuickJS et le replay de sessions commitées consomment les réponses enregistrées sans répéter les callbacks
Les requêtes préservent les arguments positionnels comme chaînes Unicode, arguments vides inclus ; la séquence de requêtes démarre à zéro pour chaque transaction
Les transactions échouées restaurent l'état du document et des objets de script et notifient le callback d'achèvement avec Committed=False ; l'application doit mettre en attente ou compenser ses effets externes car le rollback du document ne peut pas annuler une opération externe
Les callbacks d'achèvement s'exécutent une fois après validation et layout de document réussis ou après rollback, avant les observateurs de succès normaux ; les callbacks ne doivent pas lever d'exceptions ni rentrer de nouveau dans le runtime
Les callbacks de host exigent la session QuickJS livrée ; des callbacks JavaScriptEvaluator personnalisés ne fournissent pas le contrat de checkpoint et replay
Le nombre de requêtes, d'arguments, les octets de requêtes encodés et les octets de réponse ont des limites positives indépendantes ; le temps écoulé du callback compte contre l'échéance de la transaction, mais le code applicatif synchrone ne peut pas être interrompu de force
Les fonctions de script reçoivent number, Boolean, string, null ou undefined selon le Kind de la réponse ; les réponses numériques doivent être finies et les réponses Unicode contenir des paires surrogate valides
API associées
Transport de host XFA explicite, TXFAHostTransaction et Runtime de widgets XFA dynamique interactif