我有一個網頁(在瀏覽器中顯示,不是WebView),我想將一些數據(例如使用http POST)傳遞給普通的Android應用。如何攔截來自web表單的http POST數據
我只需要啓動應用程序並提供數據。我知道應用程序可以通過註冊一個意圖過濾器來啓動,但是我在數據傳遞部分丟失了。
不需要URL是真實的,假的URL是好的。
這可以在使用HTTP過濾器的BlackBerry中完成。有沒有辦法在Android中做同樣的事情?
在此先感謝。
我有一個網頁(在瀏覽器中顯示,不是WebView),我想將一些數據(例如使用http POST)傳遞給普通的Android應用。如何攔截來自web表單的http POST數據
我只需要啓動應用程序並提供數據。我知道應用程序可以通過註冊一個意圖過濾器來啓動,但是我在數據傳遞部分丟失了。
不需要URL是真實的,假的URL是好的。
這可以在使用HTTP過濾器的BlackBerry中完成。有沒有辦法在Android中做同樣的事情?
在此先感謝。
在喜歡你的網頁放鏈接:
<a href="my.special.scheme://xyz.com/data1/data2">
在你活動的onCreate()
您可以通過意向對象訪問數據..
Uri data = getIntent().getData();
String scheme = data.getScheme(); // "http"
String host = data.getHost(); // "xyz.com"
List<String> params = data.getPathSegments();
String first = params.get(0); // "data1"
String second = params.get(1); // "data2"
我將研究的方法是實現一個非常簡單的HTTP服務器服務作爲您的應用程序的一部分。爲您的確切目的編寫小型Web服務器將非常簡單:偵聽TCP端口80,接受傳入連接,然後繼續讀取套接字,直至看到\r\n\r\n
跳過標頭,然後讀取POST數據。您的網頁大概會通過'localhost'訪問它。我不知道這種方法是否存在任何主要障礙,但是在做快速搜索時,我已經看到已經有小型Android網絡服務器可用,因此在技術上似乎是可能的。
Humm,但該服務是一個很好的候選人被操作系統阻止。 –
這裏是我的兩分錢:
雖然沒有實際攔截,但此方法確實使用傳統的意圖過濾機制的工作。
例子:
android應用程序連接到傳遞的url並獲取數據。
String encodedURL = getIntent().getData().getPathSegments().get(0); //Returns http%3A%2F%2Factualurl.com
String targetURL = Html.fromHtml(encodedURL); //Returns http://actualurl.com
//Now do the GET and fetch the data.
有一些SO問題http://stackoverflow.com/questions/2958701/launch-custom-android-application-from-android-browser,http://stackoverflow.com/quest離子/ 3469908/make-a-link-in-the-android-browser-start-up-my-app和http://stackoverflow.com/questions/3038958/launch-app-with-url – user370305
@ user370305謝謝,我已經閱讀了所有內容。但是,正如我試圖解釋我的問題,我已經知道如何啓動應用程序,但不知道如何傳遞數據。 –
檢查我的blogspot'html和activity links'它包含有關傳遞數據的信息(使用GET):http://sherifandroid.blogspot.com/2011/09/html-and-activity-links-in-textview.html –