Xamarin Forms 的 WebView - 在 Windows Phone 上找不到本地资产

Xamarin Forms' WebView - local assets not found on Windows Phone

我正在使用 WebView 从字符串中显示 HTML。此 HTML 引用了我在设备本地拥有的样式表。我正在按照 the official docs 的说明进行操作,因此可以访问本地 CSS 文件。它在 Android 和 iOS 上运行良好,但我无法在 Windows Phone 8.1 上运行。我将 CSS 文件放在项目的根目录中,并将构建操作设置为 Content,然后将 BaseUrl 设置为 ""(我试过 ms-appx-web:/// 同样,没有成功)。

有谁知道文档是否缺少一些说明?还是表格中的错误?任何帮助将不胜感激。

这是用数据填充 WebView 的代码(在表单 PCL 中):

private async Task LoadData()
{
    string html = await _dataProvider.GetHtmlAsync("index");
    WebView.Source = new HtmlWebViewSource
    {
        Html = html,
        BaseUrl = _baseUrlProvider.Get()
    };
}

_baseUrlProvider 是我的 WebViewBaseUrlProvider 的实例,定义如下:

internal class WebViewBaseUrlProvider : IWebViewBaseUrlProvider
{
    public string Get() => "";
}

编辑:

看到 让我相信 Xamarin Forms 中确实存在错误。当 HTML 中的 link 包含整个 ms-appx-web:///style.css 而不仅仅是 style.css 时,它突然开始工作。显然,这不是很跨平台...

我刚刚找到答案 - Xamarin 只是忽略了 BaseUrl 属性:https://github.com/xamarin/Xamarin.Forms/blob/2d9288eee6e6f197364a64308183725e7bd561f9/Xamarin.Forms.Platform.WinRT/WebViewRenderer.cs#L26