0

im trying to display PDF files in webview. im trying to load PDF via HTML5. here is my source code:

WebView webview;

@Override
public void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.main);
    webview = (WebView) findViewById(R.id.webview);
    webview.getSettings().setJavaScriptEnabled(true);
    webview.setWebViewClient(new HelloWebViewClient()); 
    webview.loadUrl("file:///android_asset/www/test.pdf");
    WebSettings settings = webview.getSettings();
    settings.setJavaScriptEnabled(true);
    settings.setDatabaseEnabled(true);
    String databasePath = this.getApplicationContext()
            .getDir("database", Context.MODE_PRIVATE).getPath();
    settings.setDatabasePath(databasePath);
    webview.setWebChromeClient(new WebChromeClient());
}

private class HelloWebViewClient extends WebViewClient {
    @Override
    public boolean shouldOverrideUrlLoading(WebView view, String url) {
        view.loadUrl(url);
        return true;
    }
}

Any help will b greatly appreciated. Thanks in advance.

Nikhil
  • 16,194
  • 20
  • 64
  • 81
Sangeeta
  • 164
  • 4
  • 16
  • possible duplicate of [Android - Load PDF / PDF Viewer](http://stackoverflow.com/questions/4468621/android-load-pdf-pdf-viewer) – ChristopheCVB Jun 28 '13 at 15:33

3 Answers3

1

Webview does not support PDF in android.

You need to use google doc.

So you can't load PDF in webview from asset folder.

Either put your pdf in server or

Use some library to read pdf like mupdf

i have also faced this problem see this Question

or you can use Intent.ACTION_VIEW

Intent intent = new Intent(Intent.ACTION_VIEW);
intent.setDataAndType(filepath, "application/pdf");
startActivity(intent);
Community
  • 1
  • 1
MAC
  • 15,799
  • 8
  • 54
  • 95
0

Try to enable plugins in your WebView object like

mWebView.getSettings().setPluginsEnabled(true);

Possible duplicate of Android - Load PDF / PDF Viewer

Community
  • 1
  • 1
ChristopheCVB
  • 7,269
  • 1
  • 29
  • 54
-1

Try this code::Refer this

public class MyPdfViewActivity extends Activity {

  @Override
  protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    WebView mWebView=new WebView(MyPdfViewActivity.this);
    mWebView.getSettings().setJavaScriptEnabled(true);
    mWebView.getSettings().setPluginsEnabled(true);
    mWebView.loadUrl("file:///android_asset/www/test.pdf");
    setContentView(mWebView);
  }
}

Updated::

Uri path = Uri.fromFile(new File("assets/www/test.pdf"); 
Intent intent = new Intent(Intent.ACTION_VIEW); 
intent.setDataAndType(path, "application/pdf"); 
intent.setFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP); 
startActivity(intent); 
Shankar Agarwal
  • 34,573
  • 7
  • 66
  • 64
  • tried but it simply displays blank white screen. not working. – Sangeeta Jun 02 '12 at 11:20
  • 1
    @Agarwal Shankar check your answer first ,becuase webview cant support pdf file directly and we have to use google docs.but OP have pdf in asset folder? – Samir Mangroliya Jun 02 '12 at 11:24
  • @Agarwal. Thanks for your answer. Your r right. WebView doesnt support pdf files. but i dont want to use google docs , is there any other way using which i can display pdf files.as i dont want to rely on third party . – Sangeeta Jun 02 '12 at 11:34