PDF 未显示在 WebView 中
PDF not showing in a WebView
我有一个应用程序,我想在其中的 WebView 中显示 PDF 文件。
我试过这样做
webview = (WebView)findViewById(R.id.webview);
progressbar = (ProgressBar) findViewById(R.id.progressbar);
String filename =**"My Firebase PDF Url"**;
webview.loadUrl("https://docs.google.com/gview?embedded=true&url=" + filename);
webview.setWebViewClient(new WebViewClient() {
public void onPageFinished(WebView view, String url) {
progressbar.setVisibility(View.GONE);
}
});
}
但是当我 运行 应用程序显示白屏时。有人知道怎么了吗?
我正在使用来自 firebase 的 PDF 下载 URL 作为 "My Firebase PDF Url"
尝试将这些设置添加到 webview,
webview.getSettings().setJavaScriptEnabled(true);
webview.getSettings().setAllowFileAccessFromFileURLs(true);
webview.getSettings().setAllowUniversalAccessFromFileURLs(true);
webview.getSettings().setBuiltInZoomControls(true);
webview.setWebChromeClient(new WebChromeClient());
String pdf = "https://www.adobe.com/devnet/acrobat/pdfs/pdf_open_parameters.pdf";
wvPDF.getSettings().setJavaScriptEnabled(true);
wvPDF.loadUrl("https://docs.google.com/gview?embedded=true&url=" + pdf);
wvPDF.setWebViewClient(new WebViewClient() {
public void onPageFinished(WebView view, String url) {
}
});
它对我有用,请确保您有互联网许可并使用 https://docs.google.com/gview?embedded=true&url=
private void downloadPdfFromInternet(String url, final String dirPath, final String fileName) {
PRDownloader.download(
url,
dirPath,
fileName
).build().start(new OnDownloadListener() {
@Override
public void onDownloadComplete() {
File downloadedFile = new File(dirPath, fileName);
progressBar.setVisibility(View.GONE);
showPdfFromFile(downloadedFile);
}
@Override
public void onError(Error error) {
Toast.makeText(mContext,
"Error in downloading file : $error",
Toast.LENGTH_LONG).show();
}
});
PRDownloader.download(
url,
dirPath,
fileName
).build();
}
private void showPdfFromFile(File file) {
pdfView.fromFile(file)
.password(null)
.defaultPage(0)
.enableSwipe(true)
.swipeHorizontal(false)
.enableDoubletap(true)
.load();
}
As Android 拒绝从 webview 查看 PDF,所以你可以更喜欢这个 link
我有一个应用程序,我想在其中的 WebView 中显示 PDF 文件。 我试过这样做
webview = (WebView)findViewById(R.id.webview);
progressbar = (ProgressBar) findViewById(R.id.progressbar);
String filename =**"My Firebase PDF Url"**;
webview.loadUrl("https://docs.google.com/gview?embedded=true&url=" + filename);
webview.setWebViewClient(new WebViewClient() {
public void onPageFinished(WebView view, String url) {
progressbar.setVisibility(View.GONE);
}
});
}
但是当我 运行 应用程序显示白屏时。有人知道怎么了吗? 我正在使用来自 firebase 的 PDF 下载 URL 作为 "My Firebase PDF Url"
尝试将这些设置添加到 webview,
webview.getSettings().setJavaScriptEnabled(true);
webview.getSettings().setAllowFileAccessFromFileURLs(true);
webview.getSettings().setAllowUniversalAccessFromFileURLs(true);
webview.getSettings().setBuiltInZoomControls(true);
webview.setWebChromeClient(new WebChromeClient());
String pdf = "https://www.adobe.com/devnet/acrobat/pdfs/pdf_open_parameters.pdf";
wvPDF.getSettings().setJavaScriptEnabled(true);
wvPDF.loadUrl("https://docs.google.com/gview?embedded=true&url=" + pdf);
wvPDF.setWebViewClient(new WebViewClient() {
public void onPageFinished(WebView view, String url) {
}
});
它对我有用,请确保您有互联网许可并使用 https://docs.google.com/gview?embedded=true&url=
private void downloadPdfFromInternet(String url, final String dirPath, final String fileName) {
PRDownloader.download(
url,
dirPath,
fileName
).build().start(new OnDownloadListener() {
@Override
public void onDownloadComplete() {
File downloadedFile = new File(dirPath, fileName);
progressBar.setVisibility(View.GONE);
showPdfFromFile(downloadedFile);
}
@Override
public void onError(Error error) {
Toast.makeText(mContext,
"Error in downloading file : $error",
Toast.LENGTH_LONG).show();
}
});
PRDownloader.download(
url,
dirPath,
fileName
).build();
}
private void showPdfFromFile(File file) {
pdfView.fromFile(file)
.password(null)
.defaultPage(0)
.enableSwipe(true)
.swipeHorizontal(false)
.enableDoubletap(true)
.load();
}
As Android 拒绝从 webview 查看 PDF,所以你可以更喜欢这个 link