使用 google docs 在 webview 中显示 pdf 文件(存储在 google 驱动器中)
Display the pdf file(stored in google drive) in webview by using google docs
我的 pdf 文件存储在某些网站例如:http://www.pdf995.com/samples/pdf.pdf
现在我的应用程序不能依赖其他网站。所以
- 我已经下载了 pdf 文档
- 上传到 google 驱动器
- 有我自己的 link for pdf
- 正在尝试使用 google 文档在
webview
中打开它
- 失败
现link如下
pdf保存在其他网站link: "http://www.pdf995.com/samples/pdf.pdf"
可共享 link 的 pdf 保存在 google 驱动器中:“https://drive.google.com/open?id=0B8e4zX5Y1S0XV0U0UTZJOUVma00”
如果前面有 google 文档:“https://docs.google.com/gview?embedded=true&url=https://drive.google.com/file/d/0B8e4zX5Y1S0XV0U0UTZJOUVma00/view”
结果,
其他网站可能会随时更改其 url。靠不住。
如果我单独使用 google 驱动器 link,那么它是在网络浏览器中打开的,而不是在应用程序中。
如果以 google 文档开头,则不会生成 pdf 文档。我得到这样的东西。
应该怎么做才能使用 google 驱动器中我自己的 pdf 在 webview 中打开
我已经关注了 CommonsWare, Stuart Siegler, Samir Mangroliya 但是没有任何效果。
:(
您可以使用 google 文档在互联网上查看任何 pdf,甚至无需将其下载到设备上。这是如何操作的示例:
webview.loadUrl("http://drive.google.com/viewerng/viewer?embedded=true&url=" + pdf);
其中 pdf
是指向您的 PDF 文件的字符串 link。所以在你的情况下它将是:
String pdf = "http://www.pdf995.com/samples/pdf.pdf";
webview.loadUrl("http://drive.google.com/viewerng/viewer?embedded=true&url=" + pdf);
我也遇到了同样的问题,经过多次打击和尝试,我找到了解决办法。
您需要单击 google 驱动器的下载按钮。
您一点击它,就会打开一个新标签页,其中包含此类型
的不同 url
https://drive.google.com/uc?id=0B1dndMpNP4zgdlTuMm5rcjFk3TQ&export=download
//测试url//
String url="https://drive.google.com/uc?id=0B1dndMpNP4zgdlTuMm5rcjFk3TQ&export=download";
webView = (WebView) findViewById(R.id.progr);
webView.getSettings().setJavaScriptEnabled(true);
webView.getSettings().setLoadWithOverviewMode(true);
webView.loadUrl("http://drive.google.com/viewerng/viewer?embedded=true&url="+url);
我有一个 WebView,link 我的 pdf 存储在 google 驱动器中是:
String myPdfUrl = "https://drive.google.com/file/d/1fQfqgEmz-AiCpdHEIh7SNwdnAkQFqDQp/view";
别忘了“/view”。
我的 java 显示代码:
private void displayWebView() {
webView.getSettings().setJavaScriptEnabled(true);
webView.setWebViewClient(new WebViewClient(){
@Override
public boolean shouldOverrideUrlLoading(WebView view, WebResourceRequest request) {
view.loadUrl(myPdfUrl);
return true;
}
});
webView.loadUrl(myPdfUrl);
}
并在onCreate()
上方添加@SuppressLint("SetJavaScriptEnabled")
@SuppressLint("SetJavaScriptEnabled")
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.act
定义Url如:
String BASE_URL = "https://drive.google.com/viewerng/viewer?embedded=true&url=https://drive.google.com/uc?id=";
String PDF_ID = "<Your pdf id from Google drive share link>";
在WebView
中加载:
webview.loadUrl(BASE_URL + PDF_ID);
首先,您需要按照"Phúc Nghi Lâm."提供的答案(第3个答案。)
如果它不起作用....
在我的情况下,HTML-结果即将到来。但是你的 WebView 的大小是 0 宽和 0 高。
因此您需要通过实施 "onPageFinished." 或其他方式来重置 LayoutParam。
(您应该能够获取 WebView 的父视图。所以.. 1.Get 父视图的大小。2.Set 将大小数据放入新的 LayoutParam。3.将新的 LayoutParam 设置为 WebView。)
我的 pdf 文件存储在某些网站例如:http://www.pdf995.com/samples/pdf.pdf
现在我的应用程序不能依赖其他网站。所以
- 我已经下载了 pdf 文档
- 上传到 google 驱动器
- 有我自己的 link for pdf
- 正在尝试使用 google 文档在
webview
中打开它 - 失败
现link如下
pdf保存在其他网站link: "http://www.pdf995.com/samples/pdf.pdf"
可共享 link 的 pdf 保存在 google 驱动器中:“https://drive.google.com/open?id=0B8e4zX5Y1S0XV0U0UTZJOUVma00”
如果前面有 google 文档:“https://docs.google.com/gview?embedded=true&url=https://drive.google.com/file/d/0B8e4zX5Y1S0XV0U0UTZJOUVma00/view”
结果,
其他网站可能会随时更改其 url。靠不住。
如果我单独使用 google 驱动器 link,那么它是在网络浏览器中打开的,而不是在应用程序中。
如果以 google 文档开头,则不会生成 pdf 文档。我得到这样的东西。
应该怎么做才能使用 google 驱动器中我自己的 pdf 在 webview 中打开
我已经关注了 CommonsWare, Stuart Siegler, Samir Mangroliya 但是没有任何效果。 :(
您可以使用 google 文档在互联网上查看任何 pdf,甚至无需将其下载到设备上。这是如何操作的示例:
webview.loadUrl("http://drive.google.com/viewerng/viewer?embedded=true&url=" + pdf);
其中 pdf
是指向您的 PDF 文件的字符串 link。所以在你的情况下它将是:
String pdf = "http://www.pdf995.com/samples/pdf.pdf";
webview.loadUrl("http://drive.google.com/viewerng/viewer?embedded=true&url=" + pdf);
我也遇到了同样的问题,经过多次打击和尝试,我找到了解决办法。
您需要单击 google 驱动器的下载按钮。
您一点击它,就会打开一个新标签页,其中包含此类型
的不同 urlhttps://drive.google.com/uc?id=0B1dndMpNP4zgdlTuMm5rcjFk3TQ&export=download //测试url//
String url="https://drive.google.com/uc?id=0B1dndMpNP4zgdlTuMm5rcjFk3TQ&export=download";
webView = (WebView) findViewById(R.id.progr);
webView.getSettings().setJavaScriptEnabled(true);
webView.getSettings().setLoadWithOverviewMode(true);
webView.loadUrl("http://drive.google.com/viewerng/viewer?embedded=true&url="+url);
我有一个 WebView,link 我的 pdf 存储在 google 驱动器中是:
String myPdfUrl = "https://drive.google.com/file/d/1fQfqgEmz-AiCpdHEIh7SNwdnAkQFqDQp/view";
别忘了“/view”。
我的 java 显示代码:
private void displayWebView() {
webView.getSettings().setJavaScriptEnabled(true);
webView.setWebViewClient(new WebViewClient(){
@Override
public boolean shouldOverrideUrlLoading(WebView view, WebResourceRequest request) {
view.loadUrl(myPdfUrl);
return true;
}
});
webView.loadUrl(myPdfUrl);
}
并在onCreate()
@SuppressLint("SetJavaScriptEnabled")
@SuppressLint("SetJavaScriptEnabled")
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.act
定义Url如:
String BASE_URL = "https://drive.google.com/viewerng/viewer?embedded=true&url=https://drive.google.com/uc?id=";
String PDF_ID = "<Your pdf id from Google drive share link>";
在WebView
中加载:
webview.loadUrl(BASE_URL + PDF_ID);
首先,您需要按照"Phúc Nghi Lâm."提供的答案(第3个答案。)
如果它不起作用....
在我的情况下,HTML-结果即将到来。但是你的 WebView 的大小是 0 宽和 0 高。
因此您需要通过实施 "onPageFinished." 或其他方式来重置 LayoutParam。
(您应该能够获取 WebView 的父视图。所以.. 1.Get 父视图的大小。2.Set 将大小数据放入新的 LayoutParam。3.将新的 LayoutParam 设置为 WebView。)