我正在构建一个使用Xamarin.Forms WebView
的应用程序。在Android,iOS和UWP上一切正常。但有时在WebView的HtmlSource
中有一个图像无法加载。我无法找出问题所在。
我正试图在WebView
:
<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();
}