2013-07-03 71 views
0

我遇到了無法從網站獲取特定內容的問題。Webview未從網站獲取特定內容

這裏是網站:

http://www.google.com/finance/company_news?q=CURRENCY%3AUSD&ei=hYbQUcC3LJS80QHnDA

這裏是我的代碼部分:

public class WebClient extends WebViewClient { 

    @Override 
    public boolean shouldOverrideUrlLoading(WebView view, String url) { 
     view.loadUrl(url); 
     return true; 
    } 

    @Override 
    public void onPageFinished(WebView view, String url) { 
     StringBuilder builder = new StringBuilder(""); 
     builder.append("javascript:document.getElementById('gb') .style.visibility= 'hidden';"); 
     builder.append("javascript:document.getElementById('gb') .style.display = 'none' ;"); 
     builder.append("javascript:document.getElementById('appbar').style.visibility= 'hidden';"); 
     builder.append("javascript:document.getElementById('appbar').style.display = 'none' ;"); 
     builder.append("javascript:document.getElementById('gf-nav').style.visibility= 'hidden';"); 
     builder.append("javascript:document.getElementById('gf-nav').style.display = 'none' ;"); 
     view.loadUrl(url); 
    } 
    } 

private void AddListenerOnButton() { 
    spinner = (Spinner) getView().findViewById(R.id.spinner); 
    final WebView webView = (WebView) getView().findViewById(R.id.webView1); 
    webView.getSettings().setJavaScriptEnabled(true); 
    webView.getSettings().setRenderPriority(RenderPriority.HIGH); 
    webView.getSettings().setCacheMode(WebSettings.LOAD_NO_CACHE); 
    webView.getSettings().setDatabaseEnabled(true); 
    webView.getSettings().setDomStorageEnabled(true); 
    webView.getSettings().setAppCacheEnabled(true); 
    webView.getSettings().setLoadWithOverviewMode(true); 
    webView.getSettings().setUseWideViewPort(true); 
    webView.getSettings().setBuiltInZoomControls(true); 

    spinner.setOnItemSelectedListener(new OnItemSelectedListener() { 
     @Override 
     public void onItemSelected(AdapterView<?> parentView, View selectedItemView, int position, long id) { 
      String text1 = spinner.getSelectedItem().toString().trim(); 
      WebClient wc = new WebClient(); 
      if (text1.equals("US Dollar - USD")) { 
       wc.onPageFinished(webView, "http://www.google.com/finance/company_news?q=CURRENCY%3AUSD&ei=hYbQUcC3LJS80QHnDA"); 
       wc.shouldOverrideUrlLoading(webView, "http://www.google.com/finance/company_news?q=CURRENCY%3AUSD&ei=hYbQUcC3LJS80QHnDA"); 
      }    
     } 

非但沒有具體內容,Webview是返回它的所有內容。這個:

@Override 
    public void onPageFinished(WebView view, String url) { 
     StringBuilder builder = new StringBuilder(""); 
     builder.append("javascript:document.getElementById('gb') .style.visibility= 'hidden';"); 
     builder.append("javascript:document.getElementById('gb') .style.display = 'none' ;"); 
     builder.append("javascript:document.getElementById('appbar').style.visibility= 'hidden';"); 
     builder.append("javascript:document.getElementById('appbar').style.display = 'none' ;"); 
     builder.append("javascript:document.getElementById('gf-nav').style.visibility= 'hidden';"); 
     builder.append("javascript:document.getElementById('gf-nav').style.display = 'none' ;"); 
     view.loadUrl(url); 
    } 
    } 

應該只是從谷歌的信息,但它沒有奏效。這是我需要的網站的一部分:

http://oi44.tinypic.com/2ilnhwi.jpg

這到底是怎麼回事?我能做些什麼來解決它?任何幫助是極大的讚賞。

回答

0

兩個問題

  1. StringBuilder的結果是從未使用過
  2. 「的javascript:」 前綴schould只能在使用loadURL()調用使用一次。

public void onPageFinished(WebView view, String url) { 
    StringBuilder builder = new StringBuilder(""); 
    builder.append("javascript:document.getElementById('gb') .style.visibility= 'hidden';"); 
    builder.append("document.getElementById('gb') .style.display = 'none' ;"); 
    builder.append("document.getElementById('appbar').style.visibility= 'hidden';"); 
    builder.append("document.getElementById('appbar').style.display = 'none' ;"); 
    builder.append("document.getElementById('gf-nav').style.visibility= 'hidden';"); 
    builder.append("document.getElementById('gf-nav').style.display = 'none' ;"); 
    view.loadUrl(builder.toString()); 
}