我有一个方法,当调用时,使用WebView打开一个网页
public void open() {
myWebViewV = new WebView(this);
setContentView(myWebViewV);
myWebViewV.setWebViewClient(new WebViewClient() {
@Override
public boolean shouldOverrideUrlLoading(WebView view, String url){
view.loadUrl(url);
return true;
}
});
myWebViewV.loadUrl("http://www.mywebsite.org");
}
这很好地加载了网页,并且有点像我想要它做的事情,但是..它自己的页面有一些我想摆脱的东西。
例如,它具有"回复"和"发布"或"引用"按钮,用户可以按下这些按钮来回复,发布或引用某人。
我的目标是实现这些我自己并隐藏网站的按钮。
使用 WebView 类可以做到这一点吗?我必须使用其他类来完成此操作吗?我确实浏览了WebView,但没有发现任何可以为我提供执行此操作所需的工具。
谷歌搜索也没有多大帮助,但这可能是因为我无法正确表达我的意图。
javascript注入到您正在加载的网页来实现这一点。
final WebView webview = (WebView)findViewById(R.id.browser);
// enable JavaScript
webview.getSettings().setJavaScriptEnabled(true);
webview.setWebViewClient(new WebViewClient() {
@Override
public void onPageFinished(WebView view, String url)
{
// here you can do whatever you want
webview.loadUrl("javascript:(function() { " +
"document.getElementsByTagName('reply_button').style.display='none'; " +
"})()");
}
});
webview.loadUrl("http://www.webiste.com");
使用 WebView 类可以做到这一点吗?
也许。您可以在加载的网页上下文中执行JavaScript,因此,如果您可以制作对DOM执行所需操作的JavaScript,则可以使用WebView
来执行此操作。
在 Android 4.3 及更低版本中,请使用 loadUrl("javascript:...")
,其中 ...
替换为您的 JavaScript 源代码。
在 Android 4.4 及更高版本上,请使用 evaluateJavascript()
。