2012-01-11 39 views
0

我正在嘗試閱讀網站(XML/XSLT),並將主題更改爲我創建的主題,以便在網頁上看起來更好。該網站目前格式可怕的移動設備,我想解決這個問題。 :) 這可能嗎?如果是這樣,怎麼樣?如何操作Android中的WebView的HTML?

到目前爲止,我已經得到了我的應用程序加載的網站:

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(還沒有到達那裏,但不想讓自己的解決方案無法在這些情況下工作)

回答

0

幾件事情,首先,如果您有權訪問服務器端代碼,你可能想讓ch因此網站在移動設備上看起來更好,而不同尺寸的完整設備可能會更好。這是當今一個非常普遍的問題,我相信推薦的解決方案是使用不同的css文件來針對不同屏幕尺寸適當地設置您的網站主題。

現在,如果你不能或不能訪問服務器端代碼,那麼我們有一個問題。你真的必須對網站/頁面的代碼進行逆向工程,並去掉那些在較小的設備上不感興趣的HTML/CSS文件。請注意,這不會減少流量,因爲您仍然需要在本地獲取所有頁面,然後通過刪除不需要的部分並插入新的部分。

如果您贊成第二種方法,請知道它會變得脆弱。對網站的任何變化和繁榮,您的應用程序將停止按預期工作。如果你仍然堅持,那麼搜索的方式來執行Android上的HTML解析。我知道有幾個XML解析器,但我不確定HTML。

+0

是的,第二個選項是我必須走的路,因爲我沒有擁有該頁面。除了我基本上交換樣式表外,沒有太多的操作可以訪問頁面。這並不是最難的部分。我不知道的是如何檢索WebView拉取的HTML。 – Taylor 2012-01-11 16:05:39