明示的 XFA ホストトランスポート
ユニット: HPDFXFARuntime
宣言
Options := TXFAWidgetRuntimeOptions.Default;
Options.ScriptOptions.EnableJavaScript := True;
Options.HostTransport := ApplicationHost.Transport;
Options.OnHostTransactionCompleted := ApplicationHost.Completed;
動作
xfa.host.messageBox、response、beep、print、gotoURL、submitForm、importData、exportData、および FormCalc の Get・Post・Put を実行する明示的なアプリケーションコールバックを設定します
ライブラリーがダイアログ、リーダー、ネットワーク要求、ファイル転送を自動的に起こすことはありません。コールバックがアプリケーショントランスポートを実装し、型付きレスポンスを返します
ディスパッチされた各要求は、それを包むランタイムトランザクションの中で 1 回だけ実行されます。QuickJS の一時停止リトライとコミット済みセッションのリプレイは、記録済みレスポンスを消費し、コールバックを繰り返しません
要求は位置引数を Unicode 文字列として保持します。空の引数も含まれます。要求シーケンスはトランザクションごとに 0 から始まります
失敗したトランザクションはドキュメントとスクリプトオブジェクトの状態を復元し、Committed=False で完了コールバックに通知します。ドキュメントのロールバックは外部操作を取り消せないため、アプリケーション側が外部作用をステージングまたは相殺する必要があります
完了コールバックは、ドキュメント検証とレイアウトの成功後か、ロールバック後に、通常の成功オブザーバーより先に 1 回だけ実行されます。コールバックは例外を起こしたりランタイムに再入したりしてはなりません
ホストコールバックには同梱の QuickJS セッションが必要です。カスタム JavaScriptEvaluator コールバックは、チェックポイントとリプレイの契約を供給しません
要求回数、引数回数、エンコード済み要求バイト、レスポンスバイトには、独立した正の上限があります。コールバックの経過時間はトランザクションデッドラインに算入されますが、同期アプリケーションコードを強制的に中断することはできません
スクリプト関数は、レスポンスの Kind に応じて number、Boolean、string、null、undefined を受け取ります。数値レスポンスは有限でなければならず、Unicode レスポンスは有効なサロゲートペアを含まなければなりません
関連 API
明示的 XFA ホストトランスポート、TXFAHostTransaction、インタラクティブ動的 XFA ウィジェットランタイム