【发布时间】:2015-06-06 09:32:47
【问题描述】:
我有一个名为 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);");
}
【问题讨论】:
-
试试
onPageStarteddeveloper.android.com/reference/android/webkit/… -
为什么你不只是发送一个带有 url 的参数告诉你的服务器是你的应用程序正在访问而不是将它回显给用户?这将是一个正确的方法!
-
是的,正确的方法是从移动应用程序点击网页网址时向服务器发送 GET 或 POST 参数。然后使用服务器端代码删除
div -
来晚了但使用 onLoadResource(WebView view, String url) developer.android.com/intl/es/reference/android/webkit/…
标签: javascript android webview