Transport explícito do host XFA

Unidade: HPDFXFARuntime

Declaration

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

Comportamento

Configure callbacks explícitos de aplicações para executar xfa.host.messageBox, response, beep, print, gotoURL, submitForm, importData e exportData, e FormCalc Get, Post e Put

A biblioteca não invoca automaticamente nenhum diálogo, leitor, pedido de rede nem transferência de ficheiros; o callback implementa o transport da aplicação e devolve uma resposta tipada

Cada pedido despachado corre uma vez dentro de uma transação envolvente do runtime; retries de suspensão de QuickJS e replay de sessões confirmadas consomem as respostas registadas sem repetir callbacks

Os pedidos preservam argumentos posicionais como strings Unicode, incluindo argumentos vazios; a sequência de pedidos começa em zero para cada transação

Transações falhadas restauram o estado de documentos e de objetos de script e notificam o callback de conclusão com Committed=False; a aplicação tem de preparar ou compensar os efeitos externos dela, porque o rollback do documento não pode desfazer uma operação externa

Os callbacks de conclusão correm uma vez após validação e layout bem-sucedidas do documento ou após rollback, antes dos observadores normais de sucesso; callbacks não devem levantar exceções nem reentrar no runtime

Os callbacks do host exigem a sessão QuickJS distribuída; callbacks personalizados de JavaScriptEvaluator não fornecem o contrato de checkpoints e de replay

Contagem de pedidos, de argumentos, bytes codificados de pedidos e bytes de respostas têm limites positivos independentes; o tempo decorrido dos callbacks conta para o prazo da transação, mas o código síncrono da aplicação não pode ser interrompido à força

As funções de script recebem number, Boolean, string, null ou undefined de acordo com o Kind da resposta; respostas numéricas têm de ser finitas e respostas Unicode têm de conter surrogate pairs válidos

APIs relacionadas

Transport explícito do host XFA, TXFAHostTransaction e Runtime interativo de widgets XFA dinâmicos