【问题标题】:Android Webview, working with AnchorsAndroid Webview,使用 Anchors
【发布时间】:2012-07-12 20:40:57
【问题描述】:

我正在使用 loadDataWithBaseURL() 函数将网页从数据库加载到 webview 中,并尝试随后跳转到锚点。当我在使用loadUrl()-function 的 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");
    }  
});

这似乎是一个无限循环。

【问题讨论】:

标签: java android anchor android-webview


【解决方案1】:

尝试使用有效的 URL 作为 loadDataWithBaseURL() 中的基本 URL,例如 app://myhtml

此外,为了确保数据已加载,请执行 WebViewCLient.onPageFinished()

【讨论】:

  • 感谢您的帮助,我通过添加这一点代码将其直接加载到我的锚点。但是我无法在页面上滚动,我怀疑是因为它每次都将页面重新加载到该锚点。我对 Android 甚至 Java 还是很陌生,所以这可能是您的建议的错误实现,但我当然希望有更多的方向。 webview.setWebViewClient(new WebViewClient() { @Override public void onPageFinished(WebView view, String url) { super.onPageFinished(webview, "app://data"); webview.loadUrl("app://data#tips" );} });
【解决方案2】:

它之前进入了无限的 onPageFinished 循环。它与我滚动无关,它只是不断地加载同一页面。此代码允许它加载而不会陷入循环。

webview.setWebViewClient(new WebViewClient() {  
    @Override  
    public void onPageFinished(WebView view, String url) {  
        if(url.contains("#") != true){
            webview.loadUrl("app://data#tips");
        }
    }  
});

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2010-10-13
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-05-15
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多