将存储在谷歌驱动器中的 PDF 文件显示到 WebView
Posted
技术标签:
【中文标题】将存储在谷歌驱动器中的 PDF 文件显示到 WebView【英文标题】:Display PDF file stored in google drive to WebView 【发布时间】:2018-07-23 08:14:31 【问题描述】:我的应用看起来像: My app screen
这是我的 webview 代码:
private String myPdfUrl = "https://drive.google.com/open?id=1rquwQNdXeds39Rlb32isX3bjYghHitCV";
@Override
protected void onCreate(Bundle savedInstanceState)
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
init();
webView.getSettings().setjavascriptEnabled(true);
webView.setWebViewClient(new WebViewClient()
@Override
public boolean shouldOverrideUrlLoading(WebView view, WebResourceRequest request)
view.loadUrl(myPdfUrl);
return true;
);
webView.loadUrl(myPdfUrl);
我的问题是:当我使用 API 19,21 在 Genymotion 中运行时,它可以工作。但在 API 25 中,WebView 只显示白屏。
My app screen 2
【问题讨论】:
WebViews 无法显示 pdf 文件。 我不知道它如何与 api 19 一起工作。但 api 25 却不行。 【参考方案1】:转身
private String myPdfUrl = "https://drive.google.com/open?id=1rquwQNdXeds39Rlb32isX3bjYghHitCV";
进入
private String myPdfUrl = "https://drive.google.com/file/d/1rquwQNdXeds39Rlb32isX3bjYghHitCV/view";
因为 Google 正在将您重定向到另一个网址。
编辑:
在您的onCreate()
上方添加@SuppressLint("SetJavaScriptEnabled")
//...
@SuppressLint("SetJavaScriptEnabled")
@Override
protected void onCreate(Bundle savedInstanceState)
//...
你必须抑制那个 Javascript 安全问题:)
【讨论】:
谢谢!但我尝试了两个字符串。它适用于 api 19,但 api 25 不适用。以上是关于将存储在谷歌驱动器中的 PDF 文件显示到 WebView的主要内容,如果未能解决你的问题,请参考以下文章
在存储在谷歌驱动器中的谷歌 Colaboratory 中导入 zip 文件
播放存储在谷歌驱动器中的音频文件(远程 URL) - Swift
如何使用v3 rest api从google驱动器下载文件?