当URL来自互联网服务器时,如何将自定义css应用于android Webview?

时间:2014-03-02 06:52:41

标签: android html css wordpress webview

我在我的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代码?

2 个答案:

答案 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')