如何在运行时修改.NET MAUI WebView的URL源?
问题分析与解决方案
你的代码没有效果的核心原因是:你在按钮点击事件中创建了一个新的WebView实例,而不是修改XAML里已经渲染在界面上的那个WebView控件。这个新创建的实例从未被添加到布局中,所以界面上的原有WebView完全不受影响。
正确的实现方式
直接修改XAML中已存在的WebView控件的Source属性即可,无需重新创建实例:
void OnReloadWebView(object sender, EventArgs e) { try { // 直接修改已有的WebView控件的Source,无需新建实例 WebView.Source = new UrlWebViewSource { Url = "https://blog.xamarin.com/" }; // 设置Source后WebView会自动加载,Reload可以省略,除非你需要强制刷新当前URL // WebView.Reload(); } catch (Exception ex) { Debug.WriteLine($"加载错误:{ex.Message}"); } }
额外说明
- 当你为
WebView.Source赋值新的UrlWebViewSource时,控件会自动开始加载新的URL,不需要额外调用Reload()方法;Reload()主要用于刷新当前已加载的URL。 - 如果你需要在加载过程中更新进度条,可以利用
Navigating和Navigated事件来控制progress控件的进度值,比如在Navigating时设置进度为0.5,Navigated时设置为1.0。
内容的提问来源于stack exchange,提问作者Francisco José Goñi
相关产品推荐
相关产品推荐

