You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

GeckoView新版本自动显示PDF而非下载,如何设置仅下载不显示?

解决GeckoView新版本PDF自动显示而非下载的问题

新版本GeckoView(85+)默认启用了内置的PDF.js查看器,这就是导致PDF直接在标签页打开而不触发下载的原因,你可以通过以下几种方式配置解决:

  • 禁用内置PDF查看器
    直接在GeckoSession的设置里关闭PDF.js功能,点击PDF链接时就会回到原来的下载触发逻辑:

    session.getSettings().setBoolean("pdfjs.disabled", true);
    

    这是最直接的解决方案,优先尝试这个。

  • 接管下载回调
    如果禁用PDF.js后仍有问题,可以通过设置GeckoSession的Delegate拦截下载请求,复用你之前的BroadcastReceiver下载逻辑:

    session.setDelegate(new GeckoSession.Delegate() {
        @Override
        public void onDownload(GeckoSession session, Download download) {
            // 这里调用你原来的BroadcastReceiver处理下载,或者直接启动下载
            download.start();
        }
    });
    
  • 提前拦截PDF请求
    要是遇到服务器返回的MIME类型不标准的情况,可以通过ContentDelegate提前拦截请求,强制触发下载:

    session.setContentDelegate(new GeckoSession.ContentDelegate() {
        @Override
        public boolean shouldLoad(GeckoSession session, String uri, int flags, String mime, boolean isRedirect) {
            if (mime != null && mime.equals("application/pdf")) {
                session.download(uri);
                return false; // 阻止GeckoView加载该PDF链接
            }
            return true;
        }
    });
    

先试第一种方法,一般就能解决问题;如果有特殊场景,再结合后面的方式调整。

内容的提问来源于stack exchange,提问作者Christophe

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.20 13:42:43