明確的 XFA Host Transport

單元:HPDFXFARuntime

宣告

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

行為

設定明確的應用程式 callback,執行 xfa.host.messageBox、response、beep、print、gotoURL、submitForm、importData、exportData,以及 FormCalc 的 Get、Post、Put

程式庫不會自動叫用對話框、閱讀器、網路請求或檔案傳輸;callback 實作應用程式傳輸並回傳 typed 回應

每個派發的請求在外層 runtime 交易內只執行一次;QuickJS 暫停重試與已提交 session 的重播會消費已錄製回應,不重複呼叫 callback

請求把位置參數保留為 Unicode 字串,空參數也不例外;每個交易的請求序號從 0 開始

失敗的交易會還原文件與 script 物件狀態,並以 Committed=False 通知完成 callback;文件 rollback 無法復原外部操作,應用程式必須自行暫存或補償其外部效果

完成 callback 在文件驗證與版面成功之後、或 rollback 之後執行一次,先於一般成功觀察者;callback 不得丟出例外或重入 runtime

宿主 callback 需要隨附的 QuickJS session;自訂 JavaScriptEvaluator callback 不提供 checkpoint 與重播契約

請求數、參數數、編碼請求位元組與回應位元組各有獨立正值限制;callback 耗時計入交易期限,但同步的應用程式碼無法被強制中斷

script 函式依回應 Kind 收到 number、Boolean、string、null 或 undefined;數值回應必須是有限值,Unicode 回應必須含有效的 surrogate pair

相關 API

明確的 XFA Host Transport、TXFAHostTransaction與互動式動態 XFA Widget Runtime