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