Я получаю HTML-код внешней страницы из моего Backend в виде строки
и отображение его в Webview в приложении форм Xamarin
Теперь я хотел бы стилизовать его
Мне было интересно, какой самый эффективный способ сделать это?
и можно ли стилизовать его так же, как страница Xamarin была бы оформлена с помощью XAML и общих ресурсов?
до сих пор я пытался ссылаться на файл CSS в общих ресурсах, который, как я обнаружил, не работает...
htmlData = "<link rel=\"stylesheet\" type=\"text/css\"href=\"Assets\"Styles\"style.css\" />" + htmlData;
htmlSource.Html = htmlData;
myWebView.Source = htmlSource;
Обновить
В итоге я использовал собственный рендерер для Webview.
который работал для Android, но не для IOS
вот моя реализация рендерера для IOS
[assembly: ExportRenderer(typeof(CustomWebView), typeof(CustomWebViewRenderer))]
namespace XXX.iOS.Renderers
{
public class CustomWebViewRenderer : WkWebViewRenderer
{
WKUserContentController userController;
public CustomWebViewRenderer() : this(new WKWebViewConfiguration())
{
}
public CustomWebViewRenderer(WKWebViewConfiguration config) : base(config)
{
userController = config.UserContentController;
}
protected override void OnElementChanged(VisualElementChangedEventArgs e)
{
base.OnElementChanged(e);
var customWebView = e.NewElement as CustomWebView;
if (e.NewElement != null)
{
string htmldata = customWebView.HTMLData;
htmldata = "<link rel=\"stylesheet\" type=\"text/css\" href=\"StyleSheet.css\" />" + htmldata;
WkWebViewRenderer wkWebViewRenderer = new WkWebViewRenderer();
NSData data = NSData.FromString(htmldata);
wkWebViewRenderer.LoadData(data,"text/html", "UTF-8",new NSUrl(""));
}
}
}
}
Примечание. Я понятия не имею, что здесь происходит с кодом IOS, потому что я никогда не кодировал на родном языке.