2014-01-14 32 views
0

在我的Android應用程序中,Webview顯示帶有2個按鈕的網站。其中一人通過發送POST和數據通過GET另外一個,像這樣:GET和POST ajax Android Web視圖

$("#post").click(function() { 
      $.ajax({ 
       type: "POST", 
       url: "test.php", 
       dataType: "text", 
       data: { name: "Max", time: "7pm" }, 
       success: function(data) { 
        $("body").append("<p>"+data+"</p>"); 
       } 
      }); 

我的問題是:是否有可能發送的數據進入Android應用程序?

回答

1

定義JSInterface並通過引用webview.addJavascriptInterface()將數據從javascript發送到android和webView.loadUrl("javascript: /*some javascript*/ ");以將數據從android發送到javascript。

0

我認爲你在這裏混合概念。

WebView與您的Android應用程序是分開的,所以POST數據在您的應用程序中不可見。想象一下,你爲銀行的網站打開一個WebView,從應用程序中你可以獲得POST數據:你將能夠獲得用戶名,密碼......安全漏洞將是一個非常溫和的名稱。

如果您使用WebView顯示的網頁是您的(您可以控制它),則可以通過許多操作來獲取數據,但基本上,您可以讓應用程序「查詢」數據的Web服務器,或者Web服務器將數據「推送」到應用程序。您甚至可以將信息追加到URL並執行重定向,這可以使用WebView截取並進行解析。

另一種選擇是使用WebAppInterface(請參閱:http://developer.android.com/guide/webapps/webview.html),它基本上添加了一個JS對象,該對象允許與您的Android應用進行交互。

+0

通過點擊按鈕,發送的數據應該通過android應用程序發送到另一臺服務器。我知道這有點棘手,因爲它就像一個安全漏洞。你怎麼看待通過異步任務傳遞整個互聯網數據? – jan321

+0

使用WebAppInterface「傳遞」數據,這是另一種選擇。 – s1m3n