< /li>
Контент не расширяется горизонтально: < /p>
Содержание веб -просвети не растягивается, чтобы соответствовать доступной ширине. < /P>
< /li>
Размер крошечного фона. В HTML. < /p>
< /li>
Ширина видео не регулируется: < /p>
Видео не изменяется динамически на основе ширины устройства. < /p>
< /li>
< /ul>
xaml код: < /p>
< /ul>
xaml: < /p>
< /ul>
xaml: < /p>
< /ul>
xaml: < /p>
Код: Выделить всё
< /code>
ios Custom Renderer: < /p>
public class MyWebViewRenderer : ViewRenderer
{
WKWebView _wkWebView;
protected override void OnElementChanged(ElementChangedEventArgs e)
{
base.OnElementChanged(e);
if (Control == null)
{
var config = new WKWebViewConfiguration();
config.AllowsInlineMediaPlayback = true;
_wkWebView = new WKWebView(Frame, config);
_wkWebView.BackgroundColor = UIColor.Clear;
_wkWebView.ScrollView.BackgroundColor = UIColor.Clear;
_wkWebView.ScrollView.ScrollEnabled = false;
_wkWebView.Opaque = false;
_wkWebView.NavigationDelegate = new MyNavigationDelegate(this);
if (Device.Idiom == TargetIdiom.Tablet)
{
_wkWebView.Configuration.DefaultWebpagePreferences.PreferredContentMode = WKContentMode.Mobile;
}
SetNativeControl(_wkWebView);
}
}
public class MyNavigationDelegate : WKNavigationDelegate
{
MyWebViewRenderer myWebViewRenderer;
public MyNavigationDelegate(MyWebViewRenderer webViewRenderer)
{
myWebViewRenderer = webViewRenderer;
}
public async override void DidFinishNavigation(WKWebView webView, WKNavigation navigation)
{
string fontSize = Device.Idiom == TargetIdiom.Phone ? "500%" : "320%";
string injectCustomFontScript = @"
let style = document.createElement('style');
style.innerHTML = `
@font-face {
font-family: 'CustomFont';
src: url('Poppins-Light') format('truetype');
}
body, p, h1, h2, h3, h5, h6 {
font-family: 'CustomFont', sans-serif !important;
color: #313131 !important;
}
h4 {
font-family: 'CustomFont', sans-serif !important;
color: #679E18 !important;
}
`;
document.head.appendChild(style);
";
string adjustTextSizeScript = $"document.getElementsByTagName('body')[0].style.webkitTextSizeAdjust= '{fontSize}'";
WKJavascriptEvaluationResult handler = (NSObject result, NSError err) =>
{
if (err != null) System.Console.WriteLine(err);
};
webView.EvaluateJavaScript(adjustTextSizeScript, handler);
webView.EvaluateJavaScript(injectCustomFontScript, handler);
// Adjust WebView height dynamically
var wv = myWebViewRenderer.Element as MyWebView;
if (webView.ScrollView != null && webView.ScrollView.ContentSize != null)
{
await Task.Delay(200);
wv.HeightRequest = (double)webView.ScrollView.ContentSize.Height;
}
}
}
protected override void OnElementPropertyChanged(object sender, PropertyChangedEventArgs e)
{
base.OnElementPropertyChanged(sender, e);
if (e.PropertyName == "Url")
{
string finalHtml = Element.Url.Replace("width=\"640\"", "width=\"1000\"");
Control.LoadHtmlString(finalHtml, null);
}
}
}
как я могу решить эту проблему?>
Подробнее здесь: https://stackoverflow.com/questions/795 ... lay-issues
Мобильная версия