我正在 WebView 中显示带有 Google 文档的 pdf 文件。我正在使用来自 Google 云端硬盘的网址。我从 Google Drive 尝试了很多格式,但没有运气。 我的网址链接如下
https://drive.google.com/drive/u/0/folders/0Bxd-5Rffh6BufmNiYS16NFZKN2JmYzd3TjgtWmxLeEZ2SnlMa2l2RDhmYlNyTDgtUXZOdnM
我的 Activity 类如下”
public class FormWebViewActivity extends CustomWindow {
int value;
static String POSITION_ID = "position";
// WebView webView;
ProgressBar progressBar_webview;
@SuppressWarnings("deprecation")
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
try {
WebView webView = new WebView(FormWebViewActivity.this);
webView.getSettings().setJavaScriptEnabled(true);
webView.getSettings().setPluginState(PluginState.ON);
String pdfURL = "https://drive.google.com/drive/u/0/folders/0Bxd-5Rffh6BufmNiYS16NFZKN2JmYzd3TjgtWmxLeEZ2SnlMa2l2RDhmYlNyTDgtUXZOdnM";
// https://drive.google.com/file/d/0Bxd-5Rffh6BuSlhnTHJsMW5Hclk/view
webView.setWebViewClient(new WebViewClient() {
@Override
public void onPageFinished(WebView view, String url) {
super.onPageFinished(view, url);
// progressBar_webview.setVisibility(View.GONE);
}
@Override
public void onPageStarted(WebView view, String url,
Bitmap favicon) {
super.onPageStarted(view, url, favicon);
// progressBar_webview.setVisibility(View.VISIBLE);
}
@Override
public boolean shouldOverrideUrlLoading(WebView view, String url) {
// view.loadUrl(url);
return false;
}
});
webView.loadUrl("http://docs.google.com/gview?embedded=true&url="
+ pdfURL);
setContentView(webView);
} catch (RuntimeException e) {
e.printStackTrace();
}
// WebView webView = new WebView(FormWebViewActivity.this);
}
}
但它只显示 HTML 代码,而不是实际的 PDF View 。 我是否输入了错误的 Google 云端硬盘 URL?或者无法从 Google 云端硬盘显示。
任何 PDF 文件的免费网络托管也将受到赞赏。
最佳答案
除了 @Derek Fung 的回答之外,如果您的驱动器有登录 session ,您可能还需要提供 session 访问权限。
但是,如果您使用仅查看网址,则不会建议用户登录该 Google 帐户。
简单地你可以像这样使用::
webView.loadUrl("https://docs.google.com/viewer?url="+ pdfURL);
关于android - 在 webview 中显示 pdf 不起作用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32304769/