我在我的Android应用程序上显示我的wordpress博客文章。
Giving wordpress url inside webview
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
mWebView = (WebView) findViewById(R.id.activity_main_webview);
// Enable Javascript
WebSettings webSettings = mWebView.getSettings();
webSettings.setJavaScriptEnabled(true);
// Force links and redirects to open in the WebView instead of in a browser
mWebView.setWebViewClient(new WebViewClient());
mWebView.loadUrl("http://www.myblog.com/start/");
}
但我想删除页脚块,因为我只想添加
.footer{
diplay:none
}
如何添加此自定义css代码?
答案 0 :(得分:3)
加载页面后,运行一些JavaScript,例如:
mWebView.loadUrl("javascript:document.getElementsByClassName('footer')[0].style.display = 'none';");
应该这样做。在Android 4.4上,您可以使用WebView.evaluateJavaScript API。
检测页面何时加载以使此JavaScript工作非常棘手。最可靠的方法是在HTML中触发onload
事件时安装一个回调到Java的JavaScript Interface。在第一次调用WebView.loadUrl
之前,您希望在Java中使用类似的内容:
mWebView.addJavascriptInterface(new Object() {
@JavascriptInterface
public void onload() {
// This is executed on a background thread, so post back to UI thread.
mWebView.post(new Runnable() {
@Override
public void run() {
mWebView.loadUrl("javascript:...");
}
});
}
}, "android");
然后在你的HTML中:
<body onload="window.android.ready();">
希望这有帮助。
答案 1 :(得分:-1)
另一个技巧是为webview设置自定义用户代理字符串
webview.getSettings().setUserAgentString("foo");
并在javascript中
if (window.navigator.userAgent == "foo") {
// do whatever you want :)
}
如果要保留默认用户代理字符串,可以在其中附加“foo”并在javascript中使用window.navigator.userAgent.includes('foo')