使用loadDataWithBaseURL会禁用WebView中的链接

cod*_*der 5 android hyperlink webview loaddata

我使用以下代码加载电子书的html内容,其中templateString包含连接到主文件中的样式表和图像的html内容。

String itemURL = "file://" + itemPath;
testWV.loadDataWithBaseURL(itemURL,  templateString, "text/html", "UTF-8", "about:blank");
Run Code Online (Sandbox Code Playgroud)

我面临的问题是锚链接根本没有响应。

我注意到itemURL为null还是使用loadData而不是loadDataWithBaseURL,这些链接都可以工作,但是我松开了图像的连接以及通过itemURL连接的样式。

请注意,Webview可见性始终设置为可见。

这是为Webview初始化的onTouch方法:

this.setOnTouchListener(new View.OnTouchListener() {

    public boolean onTouch(View v, MotionEvent event) {

        WebView.HitTestResult hr = ((WebView)v).getHitTestResult();
        System.out.println("getExtra: "+hr.getExtra());
        // getExtra always gives null when webview loaded with loadDataWithBaseURL while it should give the url of the link pressed when the user touches a link

        return false;
    }
});
Run Code Online (Sandbox Code Playgroud)

cod*_*der 0

似乎问题与 baseURL 无关,而是与连接到 WebView 的 css 文件有关。如果缺少 baseURL,则不会加载 css 文件,从而使脚注可单击。

css 文件中导致问题的代码行是:

pointer-events: none;
Run Code Online (Sandbox Code Playgroud)

因此,如果有人正在寻找一种使 webview 非交互式的方法,这就是一种方法。

感谢每个对这个问题做出贡献的人。