명시적 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을 실행할 명시적 애플리케이션 콜백을 구성합니다
라이브러리는 대화상자, 리더, 네트워크 요청, 파일 전송을 자동 실행하지 않습니다. 콜백이 애플리케이션 전송을 구현하고 typed 응답을 반환합니다
발행된 요청 각각은 감싼 런타임 트랜잭션 안에서 한 번 실행됩니다. QuickJS 중단 재시도와 커밋된 세션 리플레이는 콜백을 반복하지 않고 기록된 응답을 소비합니다
요청은 빈 인수를 포함해 위치 인수를 Unicode 문자열로 유지합니다. 요청 시퀀스는 트랜잭션마다 0부터 시작합니다
실패한 트랜잭션은 문서·스크립트 객체 상태를 복원하고 Committed=False로 완료 콜백에 알립니다. 문서 롤백은 외부 연산을 취소할 수 없으므로 애플리케이션이 외부 효과를 스테이징하거나 보상해야 합니다
완료 콜백은 성공한 문서 검증·레이아웃 뒤 또는 롤백 뒤에, 일반 성공 관찰자보다 먼저 한 번 실행됩니다. 콜백은 예외를 발생시키거나 런타임에 재진입하면 안 됩니다
호스트 콜백에는 함께 제공되는 QuickJS 세션이 필요합니다. 커스텀 JavaScriptEvaluator 콜백은 체크포인트·리플레이 계약을 공급하지 않습니다
요청 수, 인수 수, 인코딩된 요청 바이트, 응답 바이트에는 독립적인 양의 한도가 있습니다. 콜백 경과 시간은 트랜잭션 기한에 들어가지만 동기 애플리케이션 코드는 강제로 중단할 수 없습니다
스크립트 함수는 응답 Kind에 따라 number, Boolean, string, null 또는 undefined를 받습니다. 수치 응답은 유한해야 하고 Unicode 응답은 유효한 서러게이트 쌍을 담아야 합니다