明確的 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