gpt4 book ai didi

javascript - 使用 Java 在 Android WebView 应用程序中隐藏 div 不起作用

转载 作者:行者123 更新时间:2023-11-29 20:43:34 25 4
gpt4 key购买 nike

我有一个名为 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';");
}

});

webView.loadUrl(url);

}

问题:

我的应用首先加载 div,然后实际显示几秒钟。然后突然间,应用程序中加载的整个网页都消失了,屏幕上只剩下一个带有“无”字样的空白页面。

我尝试隐藏 div“downloadapp”的方式有问题还是我在这里遗漏了什么?

我想要它做的是在网页显示之前立即隐藏 div。

最佳答案

这种情况发生在较新版本的 WebView 上——如果您的应用程序针对 API 级别 19 或更高级别 (KitKat),那么如果 javascript: URL 返回一个值,该值将被解释为内容用于打开新网页。在您的例子中,由于 'none' 是赋值的返回值,它被用作新页面的内容。

只需将 void(0); 放在 javascript: 代码的末尾,以防止它返回值。

关于javascript - 使用 Java 在 Android WebView 应用程序中隐藏 div 不起作用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30676155/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com