Display iframes in android web browser correctly

I want to show some html content in a webView. Here is my code:

String htmlContent = "...";  // some content here       

webViewContent.getSettings().setJavaScriptEnabled(true);
webViewContent.setWebViewClient(new WebViewClient());
webViewContent.setHorizontalScrollBarEnabled(false);
webViewContent.setHorizontalScrollBarEnabled(false);
webViewContent.getSettings().setSupportMultipleWindows(false);
webViewContent.getSettings().setAllowFileAccess(true);
webViewContent.getSettings().setLayoutAlgorithm(WebSettings.LayoutAlgorithm.SINGLE_COLUMN);
webViewContent.setWebChromeClient(new WebChromeClient());
webViewContent.setBackgroundColor(ContextCompat.getColor(context, R.color.background_final_page));
webViewContent.loadDataWithBaseURL(null, htmlContent , "text/html", "UTF-8", null);

It shows text and images well, but when I have an iframe in an htmlContent for example

<iframe allowtransparency="true" frameborder="0" scrolling="no" src="https://www.facebook.com/plugins/post.php?href=link" width="100%"></iframe>

webView shows iframe not correctly, with cropped height. When I added height = "100%" to the iframe code, it has no result. When I set height = 600 or height = 400, it works, but I cannot know iframe height size in advance. So how can I fix this?

+4
source share

Source: https://habr.com/ru/post/1660480/


All Articles