MAUI Blazor应用中禁用WebView2输入框的已保存信息提示
解决Windows MAUI Blazor WebView2输入框自动填充提示问题
以下几种方案可以禁用WebView2中输入框的自动填充提示:
1. 前端HTML/Blazor组件层面控制
直接给输入框添加autocomplete属性是最直接的方式,针对不同场景可选择不同属性值:
- 通用禁用:给输入框加上
autocomplete="off" - 强制禁用(部分浏览器对
off兼容不佳时):使用autocomplete="new-password",这个值会让浏览器彻底跳过自动填充 - 附加其他相关属性:
autocorrect="off"、autocapitalize="off"可以进一步禁用拼写纠正和自动大写
在Blazor组件中的示例:
<!-- InputText组件直接传递HTML属性 --> <InputText @bind-Value="FormData.Username" autocomplete="new-password" /> <!-- 原生input标签 --> <input type="text" @bind="FormData.Email" autocomplete="off" autocorrect="off" />
2. MAUI应用内配置WebView2核心设置
通过修改WebView2的CoreWebView2Settings,可以全局禁用当前应用的自动填充功能,无需逐个修改输入框:
- 在Windows项目的XAML页面(如
MainPage.xaml)中,给BlazorWebView添加Initialized事件:
<BlazorWebView x:Name="MainBlazorWebView" HostPage="wwwroot\index.html" Initialized="MainBlazorWebView_Initialized"> <BlazorWebView.RootComponents> <RootComponent Selector="#app" ComponentType="{x:Type local:Main}" /> </BlazorWebView.RootComponents> </BlazorWebView>
- 在对应的后台代码(
MainPage.xaml.cs)中实现事件处理逻辑:
private void MainBlazorWebView_Initialized(object sender, Microsoft.AspNetCore.Components.WebView.WebViewInitializedEventArgs e) { if (e.WebView is Microsoft.UI.Xaml.Controls.WebView2 webView2) { // 若CoreWebView2已初始化,直接修改设置 if (webView2.CoreWebView2 != null) { ConfigureWebView2Settings(webView2.CoreWebView2.Settings); } // 若未初始化,等待初始化完成后再配置 else { webView2.CoreWebView2InitializationCompleted += (s, args) => { if (args.IsSuccess) { ConfigureWebView2Settings(webView2.CoreWebView2.Settings); } }; } } } private void ConfigureWebView2Settings(Microsoft.Web.WebView2.Core.CoreWebView2Settings settings) { // 禁用通用自动填充 settings.IsGeneralAutofillEnabled = false; // 禁用密码自动保存/填充 settings.IsPasswordAutosaveEnabled = false; }
3. 客户端全局配置(仅适合企业/统一部署场景)
如果需要在客户端机器上全局禁用所有WebView2应用的自动填充,可以通过注册表修改:
- 打开注册表编辑器,定位到
HKEY_LOCAL_MACHINE\SOFTWARE\Policies\Microsoft\Edge\WebView2 - 创建一个DWORD类型的键值
AutofillEnabled,将其值设为0 - 重启应用后生效
注意:此方式会影响所有使用WebView2的应用,非必要不建议使用。
内容的提问来源于stack exchange,提问作者Angevil
相关产品推荐
相关产品推荐

