Webview shouldOverrideUrlLoading 没有被调用

2023-11-26

我正在制作一个电子书阅读器,它使用 epub 格式将书籍加载到网络视图中。 在某些书中,有指向同一章中某些部分的锚链接。每一章都以 html 形式加载。这就是链接的样子

file:///storage/sdcard0/Android/data/com.abc.reader/files/Download/498935/epub/resources/498935/OEBPS/#footnote-165093-1-backlink

我尝试使用shouldOverrideUrlLoading()方法来获取回调,但它没有被调用,当我按下链接时onPageFinished网址显示为about:blank

reader.setWebViewClient(new WebViewClient() {


    @Override
    public boolean shouldOverrideUrlLoading(WebView view, String url) {
        Log.w("TESTTESTOVERRIDE "+url);
        view.loadUrl(url);
        return false;
    }


    @Override
    public void onPageFinished(WebView view, String url) {
        // after the data has been loaded, the following is executed
        // TODO Auto-generated method stub
        super.onPageFinished(view, url);

            System.out.println("check.... onPageFinishedEntered.."
                    + url.toString());

            view.loadUrl(jsfileloadurl);




    }

有任何想法吗?

编辑:在 4.1 设备中,我正确获得了锚链接,但在 4.4 或 5.0 中,它是关于:空白。 (在两种情况下shouldOverrideUrlLoading不被调用)


我还没有以编程方式对此进行测试,但我相信您面临这个问题,因为 OS 4.4 之后 webview 的工作方式发生了重大变化。你应该检查这个链接https://developer.android.com/guide/webapps/migration.html#URLs

在“自定义 Url 处理”部分下,它表示不会对无效 url 调用 shouldOverrideUrlLoading()。理想情况下, file:// 应被视为有效的 url,但似乎这里没有发生。

一种可能的解决方案是使用 loadDataWithBaseURL 加载主要 webview 内容 并提供 baseurl 作为一些测试 url,例如http://mytestap.testurl,它将保证 shouldOverrideUrlLoading 将始终被调用。下一步您需要删除前缀 'http://mytestap.testurl' 如果存在于 shouldOverrideUrlLoading 回调中接收到的 url 中。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

Webview shouldOverrideUrlLoading 没有被调用 的相关文章

随机推荐

  • LibGDX 中 music.class 的 TweenAccessor

    我一直想知道 是否可以使用 LibGDX 中的通用 Tween 引擎来 例如 更改歌曲的音量 我用类似于我的 SpriteAccessor 的代码编写了自己的 MusicAccessor 它实际上适用于 Sprite class 但当涉及到
  • 在 PyCharm 中运行时,Tkinter 窗口显示为黑色

    无论我如何指定背景颜色 Tkinter 背景在运行脚本上都显示为黑色 我在 macOS 12 2 1 上使用 PyCharm CE 2021 3 2 Python解释器 Python 3 8 有5个包 如下 枕头9 0 1 未来0 18 2
  • sprintf() 如何防止 SQL 注入?

    我听说过sprintf 防止 SQL 注入 这是真的吗 如果是这样 怎么办 为什么人们建议这样编写查询 sql sprintf SELECT FROM TABLE WHERE COL1 s AND COL2 s col1 col2 spri
  • 圆线交点

    public static ArrayList
  • 如何从网页确定主机安装的 ASP.NET 版本

    我有一个在 Windows 共享托管环境中运行的网站 在他们的共享主机帐户控制面板中 我将其设置为使用 ASP NET 版本 3 0 但没有具体说明 3 5 SP1 如何查看在 asp net 页面托管我的网站的服务器上运行的已安装版本 T
  • PyMySQL 和 OrderedDict

    我已经使用 PyMySQL 一段时间了 并创建了自己的包装器 我习惯于速记编写查询 尽管如此 我一直在使用 OrderedDict 创建 CSV 文件 因为我需要保持顺序相同 但我意识到 如果我使用 PyMySQL 查询数据库 我将无法获得
  • 将值推送到 Laravel 中现有的缓存值

    我想为现有缓存设置一个值 我有这样的事情 Cache put key foo bar expiresAt 现在我该如何推动 sad 值到这个键而不删除最后的值 在推送值并获取缓存后需要类似的东西 foo bar sad 请尝试以下操作 Ca
  • MySQL 中的基数是什么?

    MySQL 中的基数是什么 请用简单的 非技术性的语言进行解释 如果任何表的索引详细信息显示字段的基数group id为11 那么这意味着什么呢 最大基数 所有值都是唯一的 最小基数 所有值都相同 有些列被称为高基数列 因为它们有约束 例如
  • Python:覆盖 __new__ 中的 __init__ 参数

    我有一个 new 方法如下 class MyClass object def new cls args new args args sort prev args pop 0 while args next args pop 0 if pre
  • 在反应中下载文件

    我有一个使用 Laravel 创建的 Restful API 该 API 如下所示 http 127 0 0 1 8000 api file pdf id 这是我的下载代码 public function pdfDownload id pd
  • “日期”的默认值无效

    我想将日期设置为mysql中日期的默认值 不是时间戳 但出现以下错误 ALTER TABLE RMS transactionentry CHANGE Date Date DATE DEFAULT NOW NOT NULL Error Inv
  • 如何保持响应图像相同的高度?

    我正在制作一个网页 其中有一排并排有封面照片和个人资料图片 我将它们都放在不同大小网格的引导行中 但是 个人资料图片总是低于封面照片 它的高度更大 如何让它们保持响应 但高度相同 我的最终目标是让它们看起来像一条带 之间有填充 然后当窗口大
  • 每次运行硒测试时如何增加字段值?

    每次通过 Selenium IDE 运行 Selenium 测试时 是否有任何简单的方法可以将字段值增加 1 Command Type Target some kind of id Value number 1 EDIT 1 感谢克罗森沃尔
  • 通过 server.execute 传递参数?

    可以通过传递参数server execute 外汇 我在我的site asp我需要的 IF 场景functions asp a something id 123被执行 这可能吗 在 site asp 上 dim id id 123 if b
  • 命令“npm start”不执行任何操作

    进入后npm start在我的 Node 项目的目录中 我看到旋转的管道符号 表明 npm 正在加载 然而 该图形会无限期地显示 并且什么也不会发生 没有提供错误消息 我该如何解决或至少诊断这个问题 My 包 json如下 name Pro
  • HTML5 和 Amazon S3 分段上传

    是否可以使用 HTML 5 File API 例如 这个库 https github com 23 resumable js 与 S3 分段上传功能结合使用 http docs aws amazon com AmazonS3 latest
  • Django 头痛与简单的非 ASCII 字符串

    我刚刚创建了以下模型 class Categoria models Model nombre models CharField max length 30 padre models ForeignKey self blank True nu
  • 如何对数组进行降序排序?

    我有一个数组 a 0 9 6 12 1 我需要一种按降序排序的方法 a 12 9 6 1 0 为了按升序排序 我有一个 Ruby 函数a to a sort 我正在寻找一个函数来按降序对数组进行排序 如下所示 a 0 9 6 12 1 so
  • Windows 10 的应用内存限制是多少?

    Windows Phone 8 1 的应用程序内存限制可以在 MSDN 上轻松找到 但我似乎无法找到有关 Windows 10 尤其是 Windows 10 Mobile 上应用程序内存限制的明确信息 每个设备系列 Xbox 台式机 手机
  • Webview shouldOverrideUrlLoading 没有被调用

    我正在制作一个电子书阅读器 它使用 epub 格式将书籍加载到网络视图中 在某些书中 有指向同一章中某些部分的锚链接 每一章都以 html 形式加载 这就是链接的样子 file storage sdcard0 Android data co