我正在android studio中使用webview,我想加载我的网站,但我也想隐藏一些元素(因为它是移动版本)。
是否可以通过android webview通过某种方式实现?
答案 0 :(得分:0)
通过在WebView中执行JavaScript函数,可以在WebView中隐藏网站的元素。我将发布youtube教程的链接,该链接将消除您的困惑,即如何获取元素ID然后隐藏。我强烈建议您观看该教程,但该教程使用的是北印度语。您只需看一下就可以了解核心概念。
Youtube教程:Click here
这是在WebView中执行JavaScript函数的一个小示例。
WebView webview = (WebView)findViewById(R.id.browser);
webview.getSettings().setJavaScriptEnabled(true);
webview.setWebViewClient(new WebViewClient() {
@Override
public void onPageFinished(WebView view, String url)
{
// hide element by class name
webview.loadUrl("javascript:(function() { " +
"document.getElementsByClassName('your_class_name')[0].style.display='none'; })()");
// hide element by id
webview.loadUrl("javascript:(function() { " +
"document.getElementById('your_id').style.display='none';})()");
}
});
webview.loadUrl(url);
答案 1 :(得分:0)
您应该从Webview外部获取源html,然后将其解析为原始数据,修改所需内容,然后将处理后的html赋予Webview。
从网址获取html数据:
HttpClient httpclient = new DefaultHttpClient(); // Create HTTP Client
HttpGet httpget = new HttpGet("http://yoururl.com"); // Set the action you want to do
HttpResponse response = httpclient.execute(httpget); // Executeit
HttpEntity entity = response.getEntity();
InputStream is = entity.getContent(); // Create an InputStream with the response
BufferedReader reader = new BufferedReader(new InputStreamReader(is, "iso-8859-1"), 8);
StringBuilder sb = new StringBuilder();
String line = null;
while ((line = reader.readLine()) != null) // Read line by line
sb.append(line + "\n");
String resString = sb.toString(); // Result is here
is.close(); // Close the stream
获取html后,将要删除的元素删除并将该html传递给Webview。