.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
相关产品推荐
相关产品推荐

