Iframe not loading in webview android
Solution 1
First add Hardware Acceleration and add the following lines to your webView
webView.setWebChromeClient(new WebChromeClient());
EDIT 1
It will be hard to identify the problem but try adding WebChromeClient
, WebViewClient
and also don't forget to enable javascript before loading URL
like this
webView= (WebView) findViewById(R.id.webview);
webView.setWebChromeClient(new WebChromeClient());
webView.setWebViewClient(new WebViewClient());
webView.getSettings().setJavaScriptEnabled(true);
EDIT 2
If you really need to load content of iframe then Try using Jsoup to load html page but you have to find the iframe and fetch the content manually.
Document doc=...
Element iframe1 = doc.select("#iframe1").first();
if (iframe1!=null) {
Document iframeContent = Jsoup.connect(iframe1.attr("src")).get();
}
where iframe1
is id of your iframe
.
Solution 2
This maybe a too late answer! I hope it will help someone.
Just try to set up a desktop user agent to your webview
String DESKTOP_USER_AGENT = "Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/37.0.2049.0 Safari/537.36";
webView.getSettings().setUserAgentString(DESKTOP_USER_AGENT);
Solution 3
If you modify webview configurations and use loadData function to load iframe, some iframes will not work in webview. So for the solution I have implemented AdvancedWebView library.
https://github.com/delight-im/Android-AdvancedWebView
Use loadHtml(URL) method with this webview and you can pass URL in parameter and you will be able to view iframe in webview.
mohan mishra
Updated on June 29, 2022Comments
-
mohan mishra almost 2 years
I have a webview. Everything is working fine but when I am opening a page which has iframe, the iframe is not getting visible. Are there any specific settings required?
-
mohan mishra over 8 yearsWhy is hardware accelaration necessary?
-
Shree Krishna over 8 years@mohanmishra as I see many standard browsers and apps uses hardware-accelerated 2D graphics since long before. The main benefit is only extra boost in performance. It is recommended.
-
mohan mishra over 8 yearsThis is not working. Is there anything else that i can do??
-
Shree Krishna over 8 years@mohanmishra is that youtube iframe?
-
mohan mishra over 8 yearsLet us continue this discussion in chat.
-
Shree Krishna over 8 years@mohanmishra It's better using Jsoup. please try my second update.
-
mohan mishra over 8 yearsThis approach is not feasible. I have 3rd party pages opening. It will be virtually impossible to keep track of each n every iframe
-
Shree Krishna over 8 yearsIt's ok, please kindly let me know if solved the issue in future, :) @mohanmishra