Xamarin Forms Webview Local Html src不会从URL加载每个图像

时间:2017-01-18 12:52:26

标签: c# html xamarin webview xamarin.forms

我正在构建一个使用Xamarin.Forms WebView的应用程序。在Android,iOS和UWP上一切正常。但有时在WebView的HtmlSource中有一个图像无法加载。我无法找出问题所在。

我正试图在WebView

中显示此HTML
<p><img src="https://www.loi.nl/~/media/images/logos/vakgebieden/ipma.jpg" alt="Img did not load" /></p>

此代码在UWP上正常工作并显示正确的图像。但是在Android或iOS上运行完全相同的代码时,图像不会显示。 我无法找出WebView无法在Android或iOS上加载此图片的原因。

这些图片DID在每个平台上都成功加载:https://www.rabobank.nl/static/generic/css/images/s14/rabobank-logo.png http://www.learnit.nl/static/nl/gratiscursus/photoshop/8/ph_07.jpg https://www.volkswagen.nl/~/media/Volkswagen/Images/Modellen/nieuwe%20up/up-hero-menu2.ashx?bc=White&as=0&h=310&w=860 http://www.volkswagen.nl/~/media/Volkswagen/Images/Modellen/nieuwe%20up/up-hero-menu2.ashx?bc=White&as=0&h=310&w=860

我用来显示WebView的代码:

var browser = new WebView();
var htmlSource = new HtmlWebViewSource();
htmlSource.Html = @"<html><head> <link rel=""stylesheet"" href=""adefault.css""> </head><body>" + c.HtmlSource + "</body></html>";
browser.Source = htmlSource;
htmlSource.BaseUrl = DependencyService.Get<IBaseURL>().Get();
browser.VerticalOptions = LayoutOptions.FillAndExpand;
browser.HorizontalOptions = LayoutOptions.FillAndExpand;
browser.WidthRequest = 100;
browser.HeightRequest = 1000;

在这种情况下,c.HtmlSource是包含问题开头显示的<p>的代码。

有人可以告诉我为什么这个特定的图片没有加载到Android和iOS平台上的Xamarin.Forms WebView中吗?

在iOS上实现IBaseURL的类的代码:

[assembly: Dependency (typeof (BaseUrl_iOS))]
namespace LOI.iOS
{
    public class BaseUrl_iOS : IBaseURL
    {
        public string Get()
        {
            return NSBundle.MainBundle.BundlePath;
        }
    }
}

在Android上实现IBaseURL的类的代码:

[assembly: Dependency (typeof (BaseUrl_Android))]
namespace LOI.Droid
{

    public class BaseUrl_Android : IBaseURL
    {
        public string Get()
        {
            return "file:///android_asset/";
        }
    }
}

IBaseURL界面:

 public interface IBaseURL
 {
     string Get();
 }

0 个答案:

没有答案