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

Xamarin.UWP平台WebView本地网页跳转其他本地页面无法打开问题求解

Xamarin.Forms UWP平台WebView本地网页跳转异常解决方案

前置资源配置

先确认UWP项目中本地帮助资源的配置正确:

  • 把HelpFolder整个文件夹放到UWP项目根目录下
  • 选中文件夹内所有html、css、js、图片等资源文件,在属性面板设置:
    • 生成操作:内容
    • 复制到输出目录:如果较新则复制

核心修复逻辑

无需修改你原有三个平台的GetBaseUrl实现,只需要在共享项目创建WebView时,添加Navigating事件拦截逻辑,主动处理本地页面跳转即可:

var files = DependencyService.Get<IFiles>();
var baseUrl = files.GetBaseUrl();
var webView = new WebView();
// 初始加载首页
webView.Source = Path.Combine(baseUrl, "HelpFolder", "index.htm");

// 拦截导航事件修复本地跳转问题
webView.Navigating += (s, e) =>
{
    // 仅处理本地资源跳转
    if (e.Url.StartsWith("ms-appx-web:///") || e.Url.StartsWith("file://"))
    {
        e.Cancel = true;
        ((WebView)s).Source = new UrlWebViewSource { Url = e.Url };
    }
};

Content = webView;

可选配置(修复资源加载异常)

如果依然存在CSS、JS无法正常加载的问题,打开UWP项目的Package.appxmanifest,在「功能」标签页勾选两个权限即可:

  • Internet(客户端)
  • 私有网络(客户端和服务器)
    这两个权限仅用于解除UWP WebView对本地资源加载的限制,完全离线场景下也不会触发任何网络请求。

该方案下,网页内的相对路径跳转、静态资源引用都可以正常运行,无需对现有HTML内容做任何修改,也不需要使用官方复杂的本地HTML加载方案。


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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.25 16:45:07