2014-01-13 71 views
0

我正在爲Android和iPhone製作一個webview應用程序。如何從android webview的URL在onPageStart()方法中獲取POST參數

在Android中,我面臨的一個問題

我有這樣的

webView.setWebViewClient(new MyWebViewClient()); 

這裏定製WebviewClient網頁視圖是我的自定義WebviewClient類

private class MyWebViewClient extends WebViewClient { 

    @Override 
    public void onPageStarted(WebView view, String url, Bitmap favicon) { 

     if (url.equalsIgnoreCase(MyConstants.fb_share)) { 
      view.stopLoading(); 

          //Want to get POST parameters embedded with the url. 

      Intent i = new Intent(context, FaceBookActivity.class); 
      i.putExtra("FB_SHARE_URL", url); 
      startActivity(i); 

     } 

     super.onPageStarted(view, url, favicon); 
    } 

    @Override 
    public boolean shouldOverrideUrlLoading(WebView view, String url) { 

     loadedUrl = url; 

     return super.shouldOverrideUrlLoading(view, url); 
    } 

    @Override 
    public void onPageFinished(WebView view, String url) { 
     super.onPageFinished(view, url); 


    } 
} 

注:在onPageStarted()方法我開始了其他活動。但是在這裏我想通過URL獲取POST參數。有沒有任何方法來獲取嵌入URL的發佈參數?

在iPhone中可以獲得POST url參數。

回答

2

使用Android WebView無法做到這一點(查看POST數據),因爲它不允許您查看發送到服務器的數據。你可以使用JavaScript重寫頁面來獲取輸入字段的值(或將方法更改爲GET),但使用任何一種方法處理圖像可能都不是微不足道的。

既然你寫的我不知道「嵌入的URL POST參數」如果表單使用方法=「得到」,在這種情況下,看看這個答案:Parsing query strings on Android

另外,不要叫stopLoadingonPageStarted,這將在比賽中結束。使用shouldOverrideUrlLoading(從那裏返回true,而不是調用stopLoading)。