You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Net MAUI中获取WebView当前URL并保存最后访问链接的问题

.NET MAUI WebView 保存最后访问链接的问题修复

你的代码存在几个关键问题,导致保存功能失效:

  • 事件未绑定:webview_Navigated方法没有和WebView的Navigated事件关联,导航时根本不会触发保存逻辑
  • URL获取方式错误:通过WebView.Source取URL不可靠,导航后Source不会实时同步当前页面地址
  • 构造函数内多余逻辑:刚初始化WebView时还未加载页面,CanGoBack必定为false,那段返回按钮逻辑完全无效

修复步骤及代码修改:

1. 在XAML中绑定WebView的Navigated事件

确保你的WebView标签加上事件绑定:

<WebView x:Name="webhtmlll" Navigated="webview_Navigated" />

2. 修改URL获取与保存逻辑

直接使用NavigatedEventArgs里的Url(这是当前成功导航到的页面地址):

// 获取链接
private void webview_Navigated(object sender, WebNavigatedEventArgs e)
{
    // 用事件参数的Url才是当前页面的正确地址
    string currentUrl = e.Url;
    Preferences.Default.Set("uriInfo", currentUrl);
}

3. 简化构造函数逻辑

删掉无用的返回按钮判断,并且Reload可以去掉(设置Source后WebView会自动加载):

public MainPage()
{
    InitializeComponent();
    string savedUrl = Preferences.Default.Get("uriInfo", "https://www.google.com/");
    webhtmlll.Source = savedUrl;
}

4. 优化返回按钮方法(可选)

调整OnBackButtonPressed的返回逻辑,更简洁:

protected override bool OnBackButtonPressed()
{
    if (webhtmlll.CanGoBack)
    {
        webhtmlll.GoBack();
        return true;
    }
    return base.OnBackButtonPressed();
}

这样修改后,每次WebView成功跳转到新页面,都会自动把当前URL保存到Preferences中,下次启动App时会自动加载最后访问的链接。

内容的提问来源于stack exchange,提问作者Дмитрий Хламов

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.13 00:37:21