我正在使用loadDataWithBaseURL()
函数从数据库中将网页加载到webview中,并试图随后跳转到锚点。当我在使用loadUrl()
功能的Web视图下方放置一个按钮时,它会跳到锚点。但是,如果我将loadUrl()
放在loadDataWithBaseURL()
之后,则表示找不到页面。
webview.loadDataWithBaseURL("app:myhtml", data, "text/html", "UTF-8", null);
webview.loadUrl("app:myhtml#tips");
我以为是因为加载尚未完成,因此找不到锚,但是我尝试了一个循环以等待
getProgress()
等于100,并在执行该命令之前验证它已达到100,但是除非它与单击按钮相关联,否则仍然无法找到该页面。关于如何从数据库加载页面然后同时跳转到锚点的任何想法。我正在使用Android 2.1 SDK。
多亏了您的帮助,我通过添加以下代码将其直接加载到锚点上。但是,我无法在页面上滚动,页面开始移动,然后回弹。我怀疑是因为它每次都将页面重新加载到该锚点。我对Android甚至Java都不熟悉,所以这可能是您建议的错误实现,但我当然希望多一些指导。这是我使用的代码:
webview.setWebViewClient(new WebViewClient() {
@Override
public void onPageFinished(WebView view, String url) {
super.onPageFinished(webview, "app://data");
webview.loadUrl("app://data#tips");
}
});
看来这正在造成无限循环。
最佳答案
尝试使用有效URL作为loadDataWithBaseURL()
中的基本URL,例如app://myhtml
。
另外,为确保已加载数据,请实施WebViewCLient.onPageFinished()
。