我正在使用loadDataWithBaseURL()
函数从数据库将网页加载到webview中,并尝试随后跳转到Anchor点。当我在使用loadUrl()
- 函数的webview下方放置一个按钮时,它会很好地跳转到Anchor点。但是,如果我将loadUrl()
放在loadDataWithBaseURL()
之后,则表示找不到页面。
webview.loadDataWithBaseURL("app:myhtml", data, "text/html", "UTF-8", null);
webview.loadUrl("app:myhtml#tips");
我认为这是因为负载没有完成,因此无法找到Anchor,但我尝试了一个循环来等待它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");
}
});
似乎这是一个无限循环。
答案 0 :(得分:1)
尝试使用有效网址作为loadDataWithBaseURL()
中的基本网址,例如app://myhtml
。
另外,要确保数据已加载,请执行WebViewCLient.onPageFinished()
。
答案 1 :(得分:0)
之前进入无限的onPageFinished循环。它与我滚动无关,只是不断加载同一页面。这段代码允许它加载而不会陷入循环。
webview.setWebViewClient(new WebViewClient() {
@Override
public void onPageFinished(WebView view, String url) {
if(url.contains("#") != true){
webview.loadUrl("app://data#tips");
}
}
});