나는 동기가 있다고 생각하지만 정확하게 메모하는 것처럼 호출에서 값을 반환 할 방법이 없습니다. 댄은 첫째
, (당신의 반환 형식은 문자열이라고 가정)이 같은 간단한 클래스를 생성 ... 솔루션을 암시 :
public class MyCallback {
private String returnValue;
public void setReturnValue(String s) {
returnValue = s;
}
public String getReturnValue() {
return returnValue;
}
}
그것은 단순이 클래스를 유지하는 것이 중요하고 캡슐화 때문에 당신이 만약 ' 잠재적으로 신뢰할 수없는 소스에서 HTML을로드하면 응용 프로그램에 보안 결함이 나타날 수 있습니다. 즉, 단순히 활동을 전달하고 Javascript 호출 메소드를 직접 호출하도록 유혹하지 마십시오.
는 그런 다음 결과를 저장하기 위해 그것을 콜백의 인스턴스를 제공하고자하는 자바 스크립트를 실행합니다
WebView webView = // ... get this from somewhere
MyCallback callback = new MyCallback();
webView.addJavaScriptInterface(callback, "callback");
webView.loadURL("javascript:callback.setReturnValue(someFunction())");
System.out.println("return value is " + callback.getReturnValue());
"나는 ... 자바에서 약간의 자바 스크립트를 실행하기 위해 노력하고있어"를 기술적으로 문이 잘못된 것입니다. – Shahzeb
나는 더 정확한 표현을 바꿨다. – pho0