.NET MAUI:如何在WebView中显示外部图片
在Android模拟器的.NET MAUI WebView中显示HTML图片的方法
一、基础实现步骤
你可以直接将目标HTML字符串通过HtmlWebViewSource加载到WebView中,示例代码如下:
XAML布局代码
<WebView x:Name="MyWebView" HeightRequest="500" WidthRequest="400" />
C#后台加载代码
var htmlSource = new HtmlWebViewSource(); htmlSource.Html = @"<!DOCTYPE html><HTML> <BODY> <H1>.NET MAUI</H1> <P>Welcome to Yahoo.</P> <img src=""https://s.yimg.com/rz/p/yahoo_homepage_en-US_s_f_p_bestfit_homepage.png"" alt=""Yahoo Image""> </BODY> </HTML>"; MyWebView.Source = htmlSource;
二、必要的Android平台配置
针对Android模拟器环境,需要完成以下两项配置:
- 添加网络访问权限
在Android项目的Platforms/Android/AndroidManifest.xml文件中,确认已添加网络权限声明:
<uses-permission android:name="android.permission.INTERNET" />
这是加载外部HTTPS图片的核心前提,Android模拟器需要该权限才能访问互联网资源。
- 混合内容适配(按需配置)
如果你的HTML中包含HTTP协议的图片链接(非HTTPS),需要额外配置WebView允许加载混合内容。在Android项目的MainActivity.cs中,重写OnCreate方法添加自定义配置:
protected override void OnCreate(Bundle savedInstanceState) { base.OnCreate(savedInstanceState); Microsoft.Maui.Handlers.WebViewHandler.Mapper.AppendToMapping("CustomWebView", (handler, view) => { if (handler.PlatformView is Android.Webkit.WebView webView) { webView.Settings.MixedContentMode = Android.Webkit.MixedContentHandling.AlwaysAllow; } }); }
你提供的HTML图片是HTTPS链接,此配置非必须,但后续若涉及HTTP资源可启用。
三、验证注意事项
- 确认Android模拟器已正常连接网络(通过模拟器状态栏的网络图标判断)
- 提前在浏览器中测试图片链接是否有效,排除资源本身不可访问的问题
内容的提问来源于stack exchange,提问作者Rolf
相关产品推荐
相关产品推荐

