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

.NET MAUI Windows桌面应用内嵌HTML无法加载外部JS问题排查

.NET MAUI Windows嵌入HTML中外部JS无法运行的解决办法

针对你在.NET MAUI Windows应用中嵌入HTML后外部JS无法执行的问题,按以下步骤排查修复:

1. 修正资源文件的访问路径

MAUI中Resources/Raw目录下的MauiAsset资源,在WebView中需要通过ms-appx-web:///协议前缀访问,直接使用文件名会导致WebView无法定位文件。修改你的JS引用路径:

string chartJsScript = "<meta charset=\"UTF-8\" />" +
"<meta name='viewport' content='width=device-width; height=device-height; initial-scale=1.0; maximum-scale=1.0; user-scalable=0;' >" +
"<meta http-equiv = \"X-UA-Compatible\" content =\"ie=edge\" />" +
"<script type=\"text/javascript\" src =\"ms-appx-web:///chart.min.js\"> </script>" +
"<script src =\"ms-appx-web:///chartjs-plugin-datalabels.js\"> </script>" +
"<script src=\"ms-appx-web:///Chart.roundedBarCharts.js\"> </script>";

2. 确保WebView启用JavaScript支持

WebView默认可能未开启JS执行,需显式配置:

  • XAML方式:
<WebView x:Name="ChartWebView"
         Preferences.JavaScriptEnabled="True" />
  • 后台代码方式:
ChartWebView.Preferences.JavaScriptEnabled = true;
// 针对Windows平台,确保WebView2初始化完成后加载HTML
await ChartWebView.EnsureCoreWebView2Async();
ChartWebView.Source = new HtmlWebViewSource { Html = document };

3. 验证JS文件的加载顺序

你当前的JS加载顺序是正确的(先加载Chart.js核心,再加载插件),但需确保所有依赖文件的路径都已修正,避免因依赖未加载导致的执行错误。

4. 调试WebView中的错误

启用WebView的开发者工具,直接查看控制台报错:

// 在WebView初始化完成后调用
ChartWebView.CoreWebView2.OpenDevToolsWindow();

通过控制台可以快速定位:是否存在JS文件404错误、语法错误或依赖缺失问题。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.04 08:33:17