2012-12-20 1 views
0

인터넷 콘텐츠에 크게 의존하는 Android 용 앱을 개발 중입니다. 이 앱에는 사용자가 보안 웹 사이트를 탐색 할 수있는 WebView가 있습니다. 이것은 훌륭하게 작동합니다. 그러나 때로는 네이티브 앱에서 메소드를 트리거해야합니다.Android WebView에서 POST 매개 변수 검색 및 추가

이렇게하려면 사용자가 양식을 제출하고 특정 매개 변수를 찾은 다음 매개 변수가 있으면 POST 요청에 다른 매개 변수를 추가 한 다음 제출해야합니다.

Google 앱이 이전 API를 지원해야합니다. 적어도 API 레벨 8. iOS에서 이것은 케이크 조각이었습니다. URL 요청을 가로 채고 URL 인코딩 된 매개 변수를 추가했습니다. 그러나 안드로이드에서는 훨씬 더 어렵습니다. 웹 사이트를 변경하지 않고 요청을 가로 채는 방법을 찾을 수 없습니다.

webviews loadUrl() 메서드와 postUrl() 메서드를 재정의하려했지만 사용자가 webview에서 href와 상호 작용할 때 호출되지 않는 것 같습니다. 우리가 찾고있는 특정 매개 변수는 다른 URL에서 올 수 있으므로 URL 자체를 무시하거나 양식 이름을 하드 코딩 할만큼 충분하지 않습니다. 누군가가 나를이 문제로 도울 수 있기를 바랍니다.

+0

[WebChromeClient] (http://developer.android.com/reference/android/webkit/WebChromeClient.html) 또는 [WebViewClient] (http://developer.android. co.kr/reference/android/webkit/WebViewClient.html) 도움을 드릴까요? – DroidBender

+0

있습니다. 불행히도 그들 중 아무도 요청의 POST 매개 변수를 반환 할 수 없습니다. – AppDeveloper122

+0

어려운 문제 .. 정보를 가로 채어 응용 프로그램에 반환 할 수있는 외부 스크립트를 사용할 수 있습니까? – DroidBender

답변

0

웹 뷰용 WebViewClient http://developer.android.com/reference/android/webkit/WebView.html#setWebViewClient(android.webkit.WebViewClient을 확인하십시오. 이것을 사용하면 웹보기를 통해 진행되는 모든 요청을 처리 할 수 ​​있습니다.

+2

아쉽게도 WebViewClient를 사용하여 POST 요청을 가로 챌 수 없습니다. 그리고 심지어 WebViewCore 클래스가 POST 매개 변수를 포함한다고 생각해도 WebViewCore가 비공개 API이므로 액세스 할 수있는 방법을 찾지 못했습니다. – AppDeveloper122

2

게시를 가로 채기 위해 javascript를 사용할 수 있습니다. javascript로 모든 입력을 확인할 수 있으므로 모든 key = value 쌍을 설정할 수도 있습니다. javascript 자체는 get 요청 만 실행할 수 있습니다. 그것이 허용되지 않으면 안드로이드 자바 스크립트 다리를 사용하여 게시물을 실행하십시오.