Iframe not loading in webview android

18,270

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.

Share:
18,270
mohan mishra
Author by

mohan mishra

Updated on June 29, 2022

Comments

  • mohan mishra
    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
    mohan mishra over 8 years
    Why is hardware accelaration necessary?
  • Shree Krishna
    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
    mohan mishra over 8 years
    This is not working. Is there anything else that i can do??
  • Shree Krishna
    Shree Krishna over 8 years
    @mohanmishra is that youtube iframe?
  • mohan mishra
    mohan mishra over 8 years
  • Shree Krishna
    Shree Krishna over 8 years
    @mohanmishra It's better using Jsoup. please try my second update.
  • mohan mishra
    mohan mishra over 8 years
    This 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
    Shree Krishna over 8 years
    It's ok, please kindly let me know if solved the issue in future, :) @mohanmishra