Android 에서 WebView 와 Javascript 의 상호작용

웹 페이지 와 안 드 로 이 드 애플 리 케 이 션 의 상호작용 을 편리 하 게 하기 위해 안 드 로 이 드 시스템 은 WebView 에서 자바 스 크 립 트 웹 스 크 립 트 가 자바 류 방법 을 호출 하 는 체 제 를 제공 합 니 다.addJavascriptInterface 방법 을 호출 하면 자바 대상 을 JavaScript 대상 에 매 핑 할 수 있 습 니 다.
1. 자바 대상 을 자 바스 크 립 트 대상 에 매 핑
mWebView = (WebView) findViewById(R.id.wv_content);
mWebView.setVerticalScrollbarOverlay(true);
final WebSettings settings = mWebView.getSettings();
settings.setSupportZoom(true);
//WebView 자 바스 크 립 트 스 크 립 트 실행 사용
settings.setJavaScriptEnabled(true);
settings.setJavaScriptCanOpenWindowsAutomatically(true);
//자바 대상 을 'js2java' 라 는 자바 script 대상 에 매 핑
//JavaScript 에서 "window. js2java"를 통 해 자바 대상 을 호출 할 수 있 는 방법
mWebView.addJavascriptInterface(new JSInvokeClass(), "js2java");
/* * 웹 페이지 자 바스 크 립 트 호출 인터페이스 * */
class JSInvokeClass {     public void back() {
        activity.finish();
    }
}
2. 자바 스 크 립 트 호출 자바 대상 예제
상기 JSINvokeClass 클래스 대상 의 back 방법 을 호출 합 니 다. 다음 과 같 습 니 다.
window.js2java.back();
다른:
1. android 에서 웹 뷰 를 이용 하여 웹 페이지 의 js 코드 를 호출 합 니 다.
Android 에서 webview 를 통 해 js 와 의 상호작용 을 실현 할 수 있 습 니 다. 프로그램 에서 js 코드 를 호출 할 수 있 습 니 다. webview 컨트롤 의 지원 js 속성 을 true 로 설정 한 다음 에 loadUrl 을 통 해 직접 호출 할 수 있 습 니 다. 다음 과 같 습 니 다.
1
2 mWebView.getSettings().setJavaScriptEnabled( true ); mWebView.loadUrl( "javascript:test()" );
2. 웹 페이지 에서 안 드 로 이 드 의 자바 코드 를 호출 하 는 방법
웹 페이지 에서 자바 코드 를 호출 하려 면 webview 컨트롤 에 자바 script Interface 를 추가 해 야 합 니 다. 다음 과 같 습 니 다.mWebView.addJavascriptInterface( new  Object() {
               public  void  clickOnAndroid() {
                   mHandler.post( new  Runnable() {
                       public  void  run() {
                         Toast.makeText(Test. this , " java" , Toast.LENGTH_LONG).show();
                     }
                 });
             }
},  "demo" );
웹 페이지 에 서 는 js 방법 을 호출 하 는 것 처럼 호출 하면 된다.
1 < div id = 'b' >< a onclick = "window.demo.clickOnAndroid()" >b.c</ a ></ div >
3. 자바 코드 호출 js 및 참조
먼저 function test (str) 와 같은 매개 변 수 를 가 진 js 함수 가 필요 합 니 다. 그 다음 에 js 를 호출 할 때 매개 변 수 를 입력 하면 됩 니 다. 다음 과 같 습 니 다.
1 mWebView.loadUrl( "javascript:test('aa')" );
4. Js 에서 자바 함수 호출 및 참조
우선 매개 변 수 를 가 진 함수 형식 이 필요 하지만 이 매개 변 수 는 final 형식 이 필요 합 니 다. 즉, 나중에 수정 할 수 없습니다. 그 값 을 수정 하려 면 중간 변 수 를 설정 한 다음 에 수정 할 수 있 습 니 다. 다음 과 같 습 니 다.mWebView.addJavascriptInterface( new  Object() {
               publi c void  clickOnAndroid(final  int  i) {
                   mHandler.post( new  Runnable() {
                       public  void  run() {
                                   int  j = i;
                                   j++;
  Toast.makeText(Test. this , " java" + String.valueOf(j), Toast.LENGTH_LONG).show();
                     }
                 });
             }
},  "demo" );
그리고 html 페이지 에서 다음 코드 를 이용 합 니 다.
1 < div id = 'b' >< a onclick = "window.demo.clickOnAndroid(2)" >b.c</ a ></ div >
호출 을 실현 할 수 있다

좋은 웹페이지 즐겨찾기