Android 에서 WebView 와 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
>
호출 을 실현 할 수 있다
이 내용에 흥미가 있습니까?
현재 기사가 여러분의 문제를 해결하지 못하는 경우 AI 엔진은 머신러닝 분석(스마트 모델이 방금 만들어져 부정확한 경우가 있을 수 있음)을 통해 가장 유사한 기사를 추천합니다:
기초 정리 - 1문자 (String) 숫자 (Number) 불린 (Boolean) null undefined 심볼 (Symbol) 큰정수 (BigInt) 따옴표로 묶어 있어야 함 Not-A-Number - 숫자 데이터 / 숫자로 표...
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
CC BY-SA 2.5, CC BY-SA 3.0 및 CC BY-SA 4.0에 따라 라이센스가 부여됩니다.