立即隐藏Android WebView中的div而不是加载网页后

时间:2015-06-06 09:32:48

标签: javascript android webview

我有一个名为downloadapp的div,我想向访问我的移动网站的用户展示,而不是使用我的Android应用。所以我需要为已经使用我的应用程序的用户隐藏该div。

我的代码:

private void startWebView(String url) {
webView.getSettings().setJavaScriptEnabled(true);
webView.setWebViewClient(new WebViewClient() {      

    //On error, open local file
    public void onReceivedError(WebView view, int errorCode, String description, String failingUrl) {
    webView.loadUrl("file:///android_asset/www/myerrorpage.html");
    }

    @Override
    public boolean shouldOverrideUrlLoading(WebView view, String url) {              
        view.loadUrl(url);
    return true;
    }

    @Override
    public void onPageFinished(WebView view, String url) {
        view.loadUrl("javascript:document.getElementById('downloadapp').style.display = 'none'; void(0);");
    }   

});

webView.loadUrl(url);

}

问题:

使用上面的代码,div downloadapp正在显示几秒钟(直到整个页面加载)。那一刻,它消失了。我想要的是它立即被隐藏,以便使用我的应用程序的人永远不会看到那个div。我怎么能这样做?

修改

我尝试添加onPageStarted,但这也不起作用。

@Override
public void onPageStarted(WebView view, String url, Bitmap favicon) {
view.loadUrl("javascript:document.getElementById('downloadapp').style.display = 'none'; void(0);");
} 

1 个答案:

答案 0 :(得分:0)

请尝试以下代码,希望对您有所帮助!

       @Override
        public void onPageFinished(WebView view, String url) {
            view.loadUrl("javascript:(function() { " +
                    "var h1 = document.getElementById('downloadapp').style.display='none'; " +
                    "})()");

        }

        @Override
        public void onPageStarted(WebView view, String url, Bitmap favicon) {
            super.onPageStarted(view, url, favicon);
            view    .loadUrl("javascript:(function() { " +
                    "var h1 = document.getElementById('downloadapp').style.display='none'; " +
                    "})()");

        }