Can not open PDF file using WebView
There some issue while loading pdf with webView. You can use the following code to solve your problem. This method takes the help of drive to view pdf in webView.Finally let me know if your problem solved or not
webview.getSettings().setJavaScriptEnabled(true);
String pdf = "https://www.w3.org/WAI/ER/tests/xhtml/testfiles/resources/pdf/dummy.pdf";
webview.loadUrl("https://drive.google.com/viewerng/viewer?embedded=true&url=" + pdf);
How to open pdf files in webview in pdfactivity?
BINGO!! My issue resolved can open pdf directly using BufferedInputStream
I created two activity, First Activity to load all pdfs in webview. When user clicks the link of pdf, the pdfurl
fetches the url as strings, passes strings to next activity.
PdfActivity.java
final String pdfurl = view.getHitTestResult().getExtra();
Intent intent = new Intent(PdfActivity.this,PdfViewer.class);
intent.putExtra("PDFURL",pdfurl);
startActivity(intent);
Second Activity is PdfViewer, bateksc pdfviewer to load pdf from url, edited as above
PdfViewer.java
package ak.wp.meto.activity;
import android.app.Activity;
import android.os.AsyncTask;
import android.os.Bundle;
import android.view.KeyEvent;
import android.widget.TextView;
import android.widget.Toast;
import com.github.barteksc.pdfviewer.PDFView;
import java.io.BufferedInputStream;
import java.io.IOException;
import java.io.InputStream;
import java.net.HttpURLConnection;
import java.net.URL;
import ak.wp.meto.R;
public class PdfViewer extends Activity {
private TextView txt; // You can remove if you don't want this
private PDFView pdf;
String value = null;
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_custom_pdf);
Bundle bundle = getIntent().getExtras();
if (bundle != null) {
value = bundle.getString("PDFURL");
}
System.out.println("PRINT PDFVIEWER DATA" +value);
pdf = (PDFView) findViewById(R.id.pdfView); //github.barteksc
txt = findViewById(R.id.txtPdf);
String pdfUrl = value;
try{
new RetrievePdfStream().execute(pdfUrl);
}
catch (Exception e){
Toast.makeText(this, "Failed to load Url :" + e.toString(), Toast.LENGTH_SHORT).show();
}
}
class RetrievePdfStream extends AsyncTask {
@Override
protected InputStream doInBackground(String... strings) {
InputStream inputStream = null;
try {
URL url = new URL(strings[0]);
HttpURLConnection urlConnection = (HttpURLConnection) url.openConnection();
if (urlConnection.getResponseCode() == 200) {
inputStream = new BufferedInputStream(urlConnection.getInputStream());
}
} catch (IOException e) {
return null;
}
return inputStream;
}
@Override
protected void onPostExecute(InputStream inputStream) {
pdf.fromStream(inputStream).load();
}
}
}
Related Topics
Custom Getfilter in Custom Arrayadapter in Android
How to Ignore Accent in SQLite Query (Android)
Firebase Runtransaction Not Working - Mutabledata Is Null
Reverse Engineering from an APK File to a Project
How to Add Options Menu to Fragment in Android
How to Send Parameters from a Notification-Click to an Activity
Converting JSONarray to Arraylist
How to Add a Textview to a Linearlayout Dynamically in Android
How to Pass Arraylist of Objects from One to Another Activity Using Intent in Android
Google Sign in Failed Com.Google.Android.Gms.Common.Api.Apiexception: 10:
Error Opening Trace File: No Such File or Directory (2)
Android HTML Imagegetter as Asynctask
Google Maps Android API V2 - Detect Touch on Map