Code: Select all
procedure TMainForm.WVBrowser1NewWindowRequested(Sender: TObject;
const aWebView: ICoreWebView2;
const aArgs: ICoreWebView2NewWindowRequestedEventArgs);
var
TempChildForm: TChildForm;
begin
TempChildForm := TChildForm.Create(self, aArgs);
TempChildForm.Show;
end;
And I want to listen to data in `ChildForm.WVBrower1's OnWebResourceResponseReceived`, so I added a listening filter in `ChildForm.WVBrower1`. The code is as follows:
Code: Select all
procedure TChildForm.WVBrowser1AfterCreated(Sender: TObject);
begin
if assigned(FArgs) and assigned(FDeferral) then
try
FArgs.NewWindow := WVBrowser1.CoreWebView2.BaseIntf;
FArgs.Handled := True;
FDeferral.Complete;
finally
FreeAndNil(FDeferral);
FreeAndNil(FArgs);
end;
// Added code
WVBrowser1.AddWebResourceRequestedFilterWithRequestSourceKinds('*',
COREWEBVIEW2_WEB_RESOURCE_CONTEXT_ALL,
COREWEBVIEW2_WEB_RESOURCE_REQUEST_SOURCE_KINDS_ALL);
WVWindowParent1.UpdateSize;
end;
Code: Select all
procedure TChildForm.WVBrowser1AfterCreated(Sender: TObject);
begin
if assigned(FArgs) and assigned(FDeferral) then
try
FArgs.NewWindow := nil; // Modification here
FArgs.Handled := True;
FDeferral.Complete;
WVBrowser1.Navigate(EncodeURL(FArgs.URI)); // Directly re-access
finally
FreeAndNil(FDeferral);
FreeAndNil(FArgs);
end;
// Added code
WVBrowser1.AddWebResourceRequestedFilterWithRequestSourceKinds('*',
COREWEBVIEW2_WEB_RESOURCE_CONTEXT_ALL,
COREWEBVIEW2_WEB_RESOURCE_REQUEST_SOURCE_KINDS_ALL);
WVWindowParent1.UpdateSize;
end;