如何在Android中操纵WebView的HTML?

时间:2012-01-11 04:19:03

标签: android webview

我正在尝试在网站(XML / XSLT)中阅读,并将主题更改为我创建的主题,以便在网络上看起来更好。该网站目前的格式非常适合移动设备,我想解决这个问题。 :) 这可能吗?如果是这样,怎么样?

到目前为止,我的应用程序已加载网站:

WebView view = (WebView) findViewById(R.id.webview);

view.setWebChromeClient(new WebChromeClient() {

    public void onProgressChanged(WebView view, int progress) {
        activity.setTitle("Loading...");
        activity.setProgress(progress * 100);
        if (progress == 100)
            activity.setTitle(R.string.app_name);
    }
});
view.setWebViewClient(new MyViewerClient());
view.getSettings().setJavaScriptEnabled(true);
view.loadUrl("http://www.somewebsite.com");

现在我正在寻找类似的东西:

String html = view.getHTML();  //  <---- does a function like this exist?
html = myparser(html); // parse html and change out xsl theme
view.loadData(html); // set html back and continue on

旁边信息:这个网站有一个登录名(SSL),并使用cookies(还没有到达那里但不想让自己找到一个在这些情况下不起作用的解决方案)

1 个答案:

答案 0 :(得分:0)

首先,如果您有权访问服务器端代码,您可能希望在那里进行更改,以便网站在移动设备上看起来更好,可以使用不同大小的完整设备。这是一个非常常见的问题,我相信推荐的解决方案是使用不同的css文件来适当地为您的网站设置不同的屏幕尺寸。

现在,如果您无法或无法访问服务器端代码,那么我们就遇到了问题。你真的必须对网站/页面的代码进行反向工程,并删除在较小的设备上不感兴趣的html / css。请注意,这不会减少流量,因为您仍需要在本地获取所有页面,然后进行传递以去除不需要的部分并插入新部分。

如果您喜欢第二种方法,请知道它会变脆。对网站和繁荣的任何更改,您的应用程序将停止按预期工作。如果你仍然坚持,那么搜索在android上执行html解析的方法。我知道有几个xml解析器,但我不确定html。