2013-04-29 2 views
0

나는 android 용 앱을 쓴다. 웹뷰가 있고 내 애플 리케이션에서 버튼을 클릭 한 후 웹 사이트의 TextArea에 텍스트를 넣고 싶습니다. Google에서 해결책을 찾지 못했습니다.android : Webview에서 TextBox에 텍스트 넣기

텍스트를 삽입하는 것이 중요합니다. POST보기로 데이터를 전송할 수있는 로그인보기가 없으므로 사용자는 입력을 볼 수 있어야합니다.

도와 주시면 감사하겠습니다.

감사합니다.

답변

0

공공 무효 addJavascriptInterface (Object 객체, 문자열 이름) API 레벨 1 에 추가 된이 웹보기로 제공되는 자바 객체를 주입. 객체는 제공된 이름을 사용하여 주 프레임의 JavaScript 컨텍스트에 주입됩니다. 이렇게하면 자바 스크립트에서 Java 객체의 메서드에 액세스 할 수 있습니다. API 레벨 JELLY_BEAN_MR1 이상을 대상으로하는 애플리케이션의 경우 JavascriptInterface로 주석 처리 된 public 메소드에만 JavaScript에서 액세스 할 수 있습니다. API 레벨 JELLY_BEAN 이하를 목표로하는 애플리케이션의 경우 모든 공개 메소드 (상속 된 메소드 포함)에 액세스 할 수 있습니다. 아래에서 중요한 보안 참고 사항을 참조하십시오. 삽입 된 개체는 페이지가 다음 (다시)로드 될 때까지 JavaScript에 나타나지 않습니다.

class JsObject { 
@JavascriptInterface 
public String toString() { return "injectedObject"; } 
} 
webView.addJavascriptInterface(new JsObject(), "injectedObject"); 
webView.loadData("", "text/html", null); 
webView.loadUrl("javascript:alert(injectedObject.toString())"); 

중요 : 예를 들어

이 방법은 자바 스크립트를 호스트 응용 프로그램을 제어 할 수 있도록하는 데 사용할 수 있습니다. 이는 강력한 기능이지만 API 레벨 JELLY_BEAN 이하를 목표로하는 애플리케이션의 경우 보안 위험이 있습니다. JavaScript는 삽입 된 객체의 공개 필드에 JavaScript가 리플렉션을 사용하여 액세스 할 수 있기 때문입니다. 신뢰할 수없는 콘텐츠가 포함 된 WebView에서이 메서드를 사용하면 공격자가 의도하지 않은 방식으로 호스트 응용 프로그램을 조작하여 호스트 응용 프로그램의 권한으로 Java 코드를 실행할 수 있습니다. 신뢰할 수없는 콘텐트를 포함 할 수있는 WebView에서이 메서드를 사용할 때는 각별히주의하십시오. JavaScript는이 WebView의 개인용 백그라운드 스레드에서 Java 오브젝트와 상호 작용합니다. 따라서 스레드 안전을 유지 관리해야합니다. Java 오브젝트의 필드에 액세스 할 수 없습니다. 매개 변수 개체는이 WebView의 JavaScript 컨텍스트에 삽입 할 Java 개체입니다. Null 값은 무시됩니다. 이름 JavaScript에서 객체를 표시하는 데 사용되는 이름

저는 전화를 사용하고 있습니다. 이것은 공식 페이지 안드로이드에서 따옴표입니다. 그래서 : 입력의

  1. 설정 ID, 예를 들어 텍스트 (예 : < 입력 ID = "텍스트"...)
  2. 이 문서의 끝 부분의 코드를 추가 경우 페이지입니다 :

    < script> function a (b) {document.getElementById ("text (여기 yur ID)"). 값 = b;}; 함수 b (a) {document.getElementById ("text ID) "). 값 + = a;} </스크립트 >

  3. 텍스트를 변경하려면 다음 코드를 사용하십시오.

    문자열 str = "임의의 문자열"; webview.loadUrl ("javascript : a (\" "+ str +"\ ")");

  4. 는 말에 텍스트를 추가하려면 = "문자열"

    문자열 str을; webview.loadUrl ("javascript : b (\" "+ str +"\ ")");

+0

고맙습니다. 그러나이 사이트는 내 것이 아닙니다. 사이트를 수정하지 않고 텍스트를 입력 할 수 있습니까? – user2332887

+0

예, 가능합니다. 하지만 코드 나 URL을 줄 수 있습니까? 또한 모든 입력 사항을 확인하고 편집 할 수 있습니다. – barwnikk

+0

수학 포럼 (독일어)이고 화면 상단에 수평 스크롤바가 있고 싶습니다 (이미지 버튼 포함). 사용자가 수학 연산자 (+, *, - ...)를 변경하지 않고 입력 할 수 있습니다. 키보드의 두 번째 부분. android.webkit.WebView Client를 사용합니다. 이 웹 사이트는 [www.gute-mathe-fragen.de] (http://www.gute-mathe-fragen.de)입니다. char도 키보드의 버튼이기 때문에 아마도 키보드 프레스를 시뮬레이션 할 수 있습니까? 모든 입력 사항을 확인하고 어떤 사항을 확인하면 무엇을 의미합니까? – user2332887

관련 문제