안드로이드 개발 질문/답변
(글 수 45,052)
public class test extends Activity {
private Handler handler = new Handler();
WebView webView;
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.webview);
webView = (WebView)findViewById(R.id.webView);
webView.getSettings().setJavaScriptEnabled(true);
webView.addJavascriptInterface(new JavaScriptExtention(), "android");
}
public final class JavaScriptExtention{
JavaScriptExtention(){}
public void hello() {
Log.d("TEST", "Hello~ called funtion by JavaScipt");
}
public void helloWithParam(final String arg) { // must be final
Log.d("TEST", "Hello~ called funtion by JavaScipt arg:"+arg);
}
}
}
안드로이드 에서는 이렇게 해 주구요
<script type="text/javascript">
function JsToAndo()
{
window.android.hello();
window.android.helloWithParam("this is Text!");
}
</script>
html에서의 스크립트에서 이렇게 해 주고 있습니다..
구글링 해서 찾은건데 몇개 사이트에서 보니 이런식으로 했을때 잘 된다고들 하는데요...
애러도 없고 어떻게 왜 안되는지 감이 오질 않습니다.
한가지 의문인게
webView.addJavascriptInterface(new JavaScriptExtention(), "android");
이 부분을 디버깅으로 지나 갈때
DexFile.class 라는 파일이 뜨더라구요..
이 파일이 나왔을때 어플을 지우고 다시하면 된다길래 해보았으나 똑같은 결과 였습니다..
혹시 해결 방법이 없을까요..?




webView.loadUrl() 이 빠졌네요. 페이지 로드는 하시는 거죠?