我在webview中显示带有Google文档的pdf。我正在使用Google云端硬盘中的网址。我尝试过Google云端硬盘这么多格式,但没有运气。 我的网址链接如下
https://drive.google.com/drive/u/0/folders/0Bxd-5Rffh6BufmNiYS16NFZKN2JmYzd3TjgtWmxLeEZ2SnlMa2l2RDhmYlNyTDgtUXZOdnM
My Activity class as foloows“
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视图。 我错误的Google云端硬盘网址了吗?或者无法通过Google云端硬盘展示。
任何免费的PDF文件托管服务也将受到赞赏。
答案 0 :(得分:2)
除了@Derek Fung的回答,如果您的驱动器有登录会话,您可能还需要提供会话访问权限。
但是如果您仅使用视图网址,则不建议用户登录Google帐户。
只需你可以像这样使用::
webView.loadUrl("https://docs.google.com/viewer?url="+ pdfURL);
答案 1 :(得分:1)
您尝试使用的链接需要身份验证,这意味着除非 webview 具有登录会话,否则您无法访问该内容。
您必须按照以下链接设置为Anyone with the link
或Public web access
,请注意,该网址也是其他内容。
编辑:
忘记提供链接