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

.NET MAUI WebView无法读取手机区域设置问题咨询

.NET MAUI WebView语言不匹配问题

问题说明

  • 手机系统已设置为西班牙语,.NET MAUI WebView能读取该设置(弹窗提示为西班牙语)
  • 但WebView导航语言仍为英语,JavaScript无法读取手机区域设置(截图显示JS返回的语言为英语)

解决方法

1. 自定义渲染器强制设置WebView语言

针对不同平台编写自定义渲染器,强制WebView使用系统区域语言:

Android平台

在Android项目中添加自定义渲染器:

[assembly: ExportRenderer(typeof(WebView), typeof(CustomWebViewRenderer))]
namespace YourApp.Droid
{
    public class CustomWebViewRenderer : WebViewRenderer
    {
        public CustomWebViewRenderer(Context context) : base(context) { }

        protected override void OnElementChanged(ElementChangedEventArgs<WebView> e)
        {
            base.OnElementChanged(e);
            if (Control != null)
            {
                var systemLocale = Resources.Configuration.Locales[0];
                Control.Settings.Locale = systemLocale;
                Control.Reload();
            }
        }
    }
}

iOS平台

在iOS项目中添加自定义渲染器:

[assembly: ExportRenderer(typeof(WebView), typeof(CustomWebViewRenderer))]
namespace YourApp.iOS
{
    public class CustomWebViewRenderer : WkWebViewRenderer
    {
        protected override void OnElementChanged(VisualElementChangedEventArgs e)
        {
            base.OnElementChanged(e);
            if (Configuration != null)
            {
                var langCode = NSLocale.CurrentLocale.LanguageCode;
                Configuration.DefaultWebpagePreferences.SetValueForKey(NSObject.FromObject(langCode), new NSString("lang"));
                Reload();
            }
        }
    }
}

2. 向JS注入系统区域信息

如果渲染器方案无效,可直接将系统语言注入到WebView的JS环境:
在WebView的导航完成事件中添加代码:

webView.Navigated += (sender, args) =>
{
    var deviceLang = CultureInfo.CurrentUICulture.Name;
    _ = webView.EvaluateJavaScriptAsync($"window.deviceLocale = '{deviceLang}';");
};

之后在JS中通过window.deviceLocale即可获取手机区域设置。

3. 排查硬编码设置

检查项目中是否存在硬编码WebView语言的代码,比如Android端的Control.Settings.Language = "en"这类设置,避免覆盖系统语言。

内容的提问来源于stack exchange,提问作者Starman2049

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.16 01:05:22