Filtro de respuesta Delphi Chromium CEF4
Hola compañeros de Stack Overflow,
He estado trasteando con CEF4, el filtro de respuesta, y tratando de capturar las respuestas json de los recursos cargados. Puedes encontrar una demo incluida aquí:
Pero parece que el problema sólo se activa una vez.
¿Hay alguna manera de hacer que se active una y otra vez, o cada vez sin tener que recargar la página?
procedure TResponseFilterBrowserFrm.Filter_OnFilter(Sender: TObject;
data_in: Pointer; data_in_size: NativeUInt; var data_in_read: NativeUInt;
data_out: Pointer; data_out_size: NativeUInt;
var data_out_written: NativeUInt; var aResult: TCefResponseFilterStatus);
No entiendo cómo se activa esto.
He intentado modificar:
function TResponseFilterBrowserFrm.IsMyResource(const aRequest
: ICefRequest): Boolean;
var
TempName: string;
begin
Result := True;
end;
pero parece que sólo se activa una vez.
davy.ai
Parece que el problema está en el procedimiento
Filter_OnFilter
que solo se activa una vez. Para hacer que se active una y otra vez, o cada vez sin recargar la página, puedes intentar usar el controlador de eventosOnResourceResponse
en lugar deFilter_OnFilter
.En el procedimiento
Filter_OnFilter
, estás filtrando la respuesta para una sola solicitud. Por otro lado, el controlador de eventosOnResourceResponse
proporciona la respuesta para todos los recursos que carga el navegador.Por lo tanto, para capturar las respuestas JSON de los recursos cargados cada vez sin recargar la página, puedes intentar añadir el siguiente fragmento de código al controlador de eventos
OnResourceResponse
:Esto asegurará que cada vez que se cargue un recurso JSON, se ejecute el código dentro del bloque
if
.¡Espero que esto te ayude!