2011-10-21 2 views
0

私はwebviewでページを読み込み、webviewの中にあるURLを解析します。androidはwebviewのURLを解析します

これはhttppostを使用してページを読み込むコードです。ます。http:

URLは、URLのFEEDある/www.ilias.de/docu/feed.php ...........

このコードはhttppost要求を作成し、応答を実行しますWebページをWebビューに表示します。

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

あなたWebViewClientのshouldOverrideUrlLoading内部を使用することによって、あなたが探しているものを達成することができます。

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。私はリンクをクリックしたくない。ページの読み込み時に解析する –

関連する問題