【发布时间】:2017-09-04 11:18:09
【问题描述】:
我知道如何在JavaScript 代码中调用Java 方法。它是由@JavascriptInterface 注解完成的。但是如果我想通过Android 确定应该调用哪个方法from JS 呢?我正在使用提到的注释在 JS 中调用 Android Dialog,其中我有 switch 语句,它应该确定应该在 JS 中调用哪个函数。我使用了一个不起作用的标志,因为对话框不同步,所以方法 showDialog() 甚至在对话框开始之前就完成了。有什么办法可以到达对面的Android-JS通信吗?
@JavascriptInterface
public int showDialog(){
new AlertDialog.Builder(this.activity)
.setTitle("Share iamge as...")
.setItems(new CharSequence[]{"Image", "PDF document", "Print"}, new DialogInterface.OnClickListener() {
@Override
public void onClick(DialogInterface dialog, int which) {
switch (which){ // this switch should determine which JS function I call
case 0: chosenMethod = 0; // here should be called JS function (eg. exportImage() from JS code)
Log.v("Dialog onClick()", "method chosen" + chosenMethod);
break;
case 1: chosenMethod = 1;
Log.v("Dialog onClick()", "method chosen" + chosenMethod);
break;
case 2: chosenMethod = 2;
Log.v("Dialog onClick()", "method chosen" + chosenMethod);
break;
}
}
})
.create().show();
Log.v("Dialog out of onClick", "method chosen" + chosenMethod);
return chosenMethod;
}
【问题讨论】:
-
你想知道
how to call JS in WebView吗? -
@VladMatvienko 是的,要发布一些代码
标签: javascript java android webview