android - 将存储在谷歌驱动器中的 PDF 文件显示到 WebView

标签 android pdf webview

我的应用看起来像: 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

最佳答案

转身

private String myPdfUrl = "https://drive.google.com/open?id=1rquwQNdXeds39Rlb32isX3bjYghHitCV";

进入

private String myPdfUrl = "https://drive.google.com/file/d/1rquwQNdXeds39Rlb32isX3bjYghHitCV/view";

因为 Google 将您重定向到另一个 URL。

编辑:

onCreate() 之上添加 @SuppressLint("SetJavaScriptEnabled")

//...
@SuppressLint("SetJavaScriptEnabled")
@Override
protected void onCreate(Bundle savedInstanceState) {
//...

你必须抑制那个 Javascript 安全问题:)

关于android - 将存储在谷歌驱动器中的 PDF 文件显示到 WebView,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48758679/

相关文章:

android - ActionBarSherlock 同一选项卡中的重叠 fragment

java - 如何访问war文件之外的文件夹?

android - 加载超过 500kb 的长 webview

Android 媒体播放器服务最佳实践

android - 使用新数据从 simpleAdapter 更新 listview

google-chrome - PDF文档文本在IE/Firefox/Chrome浏览器中的显示方式有所不同

Android WebView Assets 引用内存泄漏

javascript - Android HTML5 图像加载从未完成

java - Android SDK 可以与 JDK 1.7 一起使用吗?

python - 如何将 Dash 仪表板格式化并打印为 PDF?