Transporte de host XFA explícito

Unit: HPDFXFARuntime

Declaración

Options := TXFAWidgetRuntimeOptions.Default;
Options.ScriptOptions.EnableJavaScript := True;
Options.HostTransport := ApplicationHost.Transport;
Options.OnHostTransactionCompleted := ApplicationHost.Completed;

Comportamiento

Configura callbacks explícitos de la aplicación para ejecutar xfa.host.messageBox, response, beep, print, gotoURL, submitForm, importData y exportData, y los Get, Post y Put de FormCalc

La librería no invoca automáticamente ningún diálogo, lector, petición de red ni transferencia de archivos; el callback implementa el transporte de la aplicación y devuelve una respuesta tipada

Cada petición despachada se ejecuta una vez dentro de una transacción runtime envolvente; los reintentos de suspensión de QuickJS y el replay de sesiones confirmadas consumen las respuestas grabadas sin repetir callbacks

Las peticiones preservan los argumentos posicionales como cadenas Unicode, incluidos los argumentos vacíos; la secuencia de peticiones empieza en cero para cada transacción

Las transacciones fallidas restauran el estado del documento y de los objetos de script y notifican al callback de finalización con Committed=False; la aplicación debe hacer staging o compensar sus efectos externos porque el rollback del documento no puede deshacer una operación externa

Los callbacks de finalización se ejecutan una vez tras la validación y el layout del documento con éxito o tras el rollback, antes de los observers de éxito normales; los callbacks no deben lanzar excepciones ni reentrar en el runtime

Los callbacks del host exigen la sesión QuickJS incluida; los callbacks JavaScriptEvaluator personalizados no aportan el contrato de checkpoint y replay

El recuento de peticiones, de argumentos, los bytes de petición codificados y los bytes de respuesta tienen límites positivos independientes; el tiempo transcurrido del callback cuenta contra la deadline de la transacción, pero el código síncrono de la aplicación no puede interrumpirse forzosamente

Las funciones de script reciben number, Boolean, string, null o undefined según el Kind de la respuesta; las respuestas numéricas deben ser finitas y las respuestas Unicode deben contener pares surrogate válidos

APIs relacionadas

Transporte de host XFA explícito, TXFAHostTransaction y Runtime interactivo de widgets XFA dinámico