2011-10-21 53 views
0

我在webview中加載頁面,我想解析webview中的URL。android在webview中解析URL

這是我使用httppost加載頁面的代碼。

的URL是URL FEED:HTTP:/www.ilias.de/docu/feed.php ...........

此代碼作出httppost請求並執行響應然後它將網頁顯示到webview中。

public class ilias extends Activity { 

WebView webView; 

    /** Called when the activity is first created. */ 
    @Override 
    public void onCreate(Bundle savedInstanceState) { 
     super.onCreate(savedInstanceState); 
     setContentView(R.layout.main); 
     webView = (WebView)findViewById(R.id.webview); 

     BufferedReader bufferedReader = null; 
     HttpClient httpClient = new DefaultHttpClient(); 
     HttpPost request = new HttpPost("http://www.ilias.de/docu/login.php?client_id=docu"); 
     List<NameValuePair> postParameters = new ArrayList<NameValuePair>(); 
     postParameters.add(new BasicNameValuePair("username", "stacked")); //this username 
     postParameters.add(new BasicNameValuePair("password", "overflow"));//works 


    try { 
    UrlEncodedFormEntity entity = new UrlEncodedFormEntity(postParameters); 
     request.setEntity(entity); 

     HttpResponse response= httpClient.execute(request); 

    bufferedReader = new BufferedReader(
      new InputStreamReader(response.getEntity().getContent())); 
    StringBuffer stringBuffer = new StringBuffer(""); 
    String line = ""; 
    String LineSeparator = System.getProperty("line.separator"); 
    while ((line = bufferedReader.readLine()) != null) { 
    stringBuffer.append(line + LineSeparator); 
    } 
    bufferedReader.close(); 

    Toast.makeText(ilias.this, 
    "Finished", 
    Toast.LENGTH_LONG).show(); 

    String webData = stringBuffer.toString(); 

    webView.setWebViewClient(new WebViewClient()); 
    webView.getSettings().setJavaScriptEnabled(true); 

    webView.loadDataWithBaseURL("http://www.ilias.de/docu/",webData,"text/html","UTF-8","about:blank"); 
    String postData = "username=stacked&password=overflow"; 
    String url = "http://www.ilias.de/docu/login.php?client_id=docu"; 

    webView.postUrl(url, EncodingUtils.getBytes(postData, "base64")); 

    webView.loadUrl("http://www.ilias.de/docu/ilias.php?col_side=left&block_type=pdnews&cmd=showFeedUrl&cmdClass=ilpdnewsblockgui&cmdNode=i7:db:le&baseClass=ilPersonalDesktopGUI"); 
    webView.setWebViewClient(new WebViewClient() { 
     public void onReceivedSslError (WebView view, SslErrorHandler handler, SslError error) { 
     handler.proceed() ; 
     } 
    }); 

    } catch (ClientProtocolException e) { 
    // TODO Auto-generated catch block 
    e.printStackTrace(); 
    Toast.makeText(ilias.this, 
    e.toString(), 
    Toast.LENGTH_LONG).show(); 
    } catch (IOException e) { 
    // TODO Auto-generated catch block 
    e.printStackTrace(); 
    Toast.makeText(ilias.this, 
    e.toString(), 
    Toast.LENGTH_LONG).show(); 
    }finally{ 
    if (bufferedReader != null){ 
    try { 
    bufferedReader.close(); 
    } catch (IOException e) { 
    // TODO Auto-generated catch block 
    e.printStackTrace(); 
    } 
    } 
    } 


    } 
} 

回答

-1

你可以完成你正在使用shouldOverrideUrlLoading您WebViewClient內尋找。

EX:

webView.setWebViewClient(new WebViewClient() { 
      public void onReceivedSslError (WebView view, SslErrorHandler handler, SslError error) { 
       handler.proceed() ; 
      } 

      @Override 
      public boolean shouldOverrideUrlLoading (WebView view, String url){ 
        //Code to parse url 
        return false; 
      } 
    }); 
+0

但對於解析什麼碼?那是我的問題 –

+0

pd。我不想點擊鏈接。只是在頁面加載時解析 –