我在代码中测试了一系列更改,用于从 webview 对象获取 web 端的 URL 并将 URL 打印到条目。
private async void YoutubeWebView_Navierated(object? sender, WebNavieratedEventArgs e) { 尝试 { 字符串 currentUrl = 等待 youtubeWebView.EvaluateJavaScriptAsync("window.location.href;"); urlEntry.Text = 当前Url; } catch(异常前) { wait Console.Out.WriteLineAsync($"JavaScript 执行错误: {ex.Message}"); 扔; }
}
private void YoutubeWebView_Navigating(对象?发送者,WebNavigatingEventArgs e) {
urlEntry.Text = e.Url;
}
我测试了 e.url。不工作。评估 JavaScriptAsync。不工作。更改 Webview.source。不工作。也许是你的教授之一。可以帮助我。
您可以尝试以下代码:
xaml:
<Entry x:Name="urlentry" TextColor="OrangeRed"/>
<WebView Source="https://learn.microsoft.com/en-us/dotnet/maui/user-interface/layouts/grid?view=net-maui-8.0"
x:Name="webview"
Navigating="webview_Navigating"
Navigated="webview_Navigated"
HeightRequest="500"/>
背后代码:
private void webview_Navigating(object sender, WebNavigatingEventArgs e)
{
urlentry.Text = e.Url;
}
private async void webview_Navigated(object sender, WebNavigatedEventArgs e)
{
try
{
string currentUrl = await webview.EvaluateJavaScriptAsync("window.location.href;");
urlentry.Text = currentUrl;
}
catch (Exception ex)
{
await Console.Out.WriteLineAsync($"JavaScript execution error: {ex.Message}");
throw;
}
}
您可以尝试将WebView的
Source
设置为.NET MAUI,看看urlentry.Text是否会更新。