Nel mio progetto Xamarin portatile condiviso, questo funziona su UWP, Windows Phone 8.1 e Windows 8.1:Webview BaseURL in Xamarin.Forms su UWP e Windows Phone 8.1
HtmlWebViewSource htmlSource = new HtmlWebViewSource();
htmlSource.Html = @"<html><body><img src='ms-appx-web:///Assets/somePicture.png' /></body></html>";
htmlSource.BaseUrl = DependencyService.Get<IBaseUrl>().Get();
WebView webView = new WebView
{
Source = htmlSource,
};
Ovviamente, questo non è cross -piattaforma (iOS e Android). Voglio che questo, ma non funziona su UWP, Windows Phone 8.1 e Windows 8.1:
HtmlWebViewSource htmlSource = new HtmlWebViewSource();
htmlSource.Html = @"<html><body><img src='somePicture.png' /></body></html>";
htmlSource.BaseUrl = DependencyService.Get<IBaseUrl>().Get();
WebView webView = new WebView
{
Source = htmlSource,
};
IBaseUrl: implementazione
public interface IBaseUrl { string Get(); }
baseurl per UWP, Windows Phone 8.1 e Windows 8.1, tratto da un Windows Phone 8.0 sample project:
[assembly: Dependency(typeof(MyApp.UWP.BaseUrl))]
namespace MyApp.UWP
{
public class BaseUrl : IBaseUrl
{
public string Get()
{
return ""; // "ms-appx-web:///Assets/" doesn't work
}
}
}
ho provato diverse varianti di ritorno baseurl di "ms-appx-web: /// Assets /", "MS-appx-web: ///", mettendo i file in la radice del progetto o in "As imposta "dir, niente funziona.
Per quanto posso dire, questo funzionava su Windows Phone 8.0.
Questo potrebbe funzionare, ma dovrebbe essere eseguito per ogni singolo URL, che non mi sembra la soluzione migliore –
Hmm, I vedi il tuo problema Non riesco a capire BaseUrl con UWP. Ma che dire di Regex.Replace? Questo potrebbe funzionare. – Matt
Sto lavorando su Xamarin cross platform project dove, se metto le immagini all'interno della sottocartella, non si carica sullo schermo. "ms-appx: ///Assets/abc.png" – Ashaar