gpt4 book ai didi

javascript - Webview shouldOverrideUrlLoading 没有被调用

转载 作者:塔克拉玛干 更新时间:2023-11-02 19:51:45 27 4
gpt4 key购买 nike

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

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

我尝试使用 shouldOverrideUrlLoading() 方法来获取回调,但它没有被调用,当我按下 onPageFinished 中的链接时,url 显示为 关于:空白

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 设备中我正确地获得了 anchor 链接,但在 4.4 或 5.0 中它是关于:空白。 (在这两种情况下,都不会调用 shouldOverrideUrlLoading)

最佳答案

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

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

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

关于javascript - Webview shouldOverrideUrlLoading 没有被调用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31702036/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com