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, solicitud de red ni transferencia de archivos; el callback implementa el transporte de la aplicación y devuelve una respuesta tipada
Cada solicitud despachada corre una vez dentro de una transacción de runtime contenedora; los reintentos de suspensión de QuickJS y el replay de sesiones comprometidas consumen las respuestas grabadas sin repetir callbacks
Las solicitudes preservan los argumentos posicionales como cadenas Unicode, incluidos los argumentos vacíos; la secuencia de solicitudes 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 preparar en staging o compensar sus efectos externos porque el rollback del documento no puede deshacer una operación externa
Los callbacks de finalización corren una vez tras la validación y layout exitosos del documento o tras el rollback, antes de los observers normales de éxito; los callbacks no deben lanzar excepciones ni reentrar al runtime
Los callbacks del host exigen la sesión QuickJS incluida; los callbacks JavaScriptEvaluator personalizados no aportan el contrato de checkpoint y replay
El conteo de solicitudes, de argumentos, los bytes de solicitudes codificadas y los bytes de respuesta tienen límites positivos independientes; el tiempo transcurrido del callback cuenta contra el 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 surrogados válidos
APIs relacionadas
Transporte de host XFA explícito, TXFAHostTransaction y Runtime interactivo de widgets XFA dinámico