Currently my code is:
Code: Select all
procedure TFrmBrowser.WVBrowser1FrameNavigationStarting(Sender: TObject;
const aWebView: ICoreWebView2;
const aArgs: ICoreWebView2NavigationStartingEventArgs);
var
ATempArgs : TCoreWebView2NavigationStartingEventArgs;
begin
ATempArgs := TCoreWebView2NavigationStartingEventArgs.Create( aArgs );
try
if Pos( 'MY_URI'.ToLower(), string(ATempArgs.URI).ToLower() ) > 0 then
FFrameMonitorar := ATempArgs.NavigationID;
finally
ATempArgs.Free;
end;
end;
procedure TFrmBrowser.WVBrowser1FrameNavigationCompleted ( Sender : TObject;
const aWebView : ICoreWebView2;
const aArgs : ICoreWebView2NavigationCompletedEventArgs ) ;
var
TempArgs : TCoreWebView2NavigationCompletedEventArgs;
begin
TempArgs := TCoreWebView2NavigationCompletedEventArgs.Create ( aArgs ) ;
try
if ( FFrameMonitorar > 0 ) and ( TempArgs.NavigationID = FFrameMonitorar ) then
begin
FFrameMonitorar := 0;
// do something
end;
finally
TempArgs.Free;
end;
end;
procedure TFrmBrowser.WVBrowser1NavigationStarting ( Sender : TObject;
const aWebView : ICoreWebView2;
const aArgs : ICoreWebView2NavigationStartingEventArgs ) ;
var
TempArgs : TCoreWebView2NavigationStartingEventArgs;
begin
TempArgs := TCoreWebView2NavigationStartingEventArgs.Create ( aArgs ) ;
try
if SameText ( 'MY_URI'.ToLower() , string(TempArgs.URI).ToLower() ) = True then
FNavegacaoMonitorar := TempArgs.NavigationID;
finally
TempArgs.Free;
end;
end;
procedure TFrmBrowser.WVBrowser1DOMContentLoaded ( Sender : TObject;
const aWebView : ICoreWebView2;
const aArgs : ICoreWebView2DOMContentLoadedEventArgs ) ;
var
TempArgs : TCoreWebView2DOMContentLoadedEventArgs;
begin
TempArgs := TCoreWebView2DOMContentLoadedEventArgs.Create ( aArgs ) ;
try
if TempArgs.NavigationId = FNavegacaoMonitorar then
begin
FNavegacaoMonitorar := 0;
// do something
end;
finally
TempArgs.Free;
end;
end;
####
How to execute a JS code in FrameNavigationCompleted event?
aWebView.ExecuteScript has some extra parameters...