如何使用 JavascriptInterface 将 return Android 的 Alert return 值传递给 WebView?
How to return Android's Alert return value to WebView with JavascriptInterface?
我已经为我的浏览器游戏创建了一个 Android WebView 应用程序。我使用 Javascript-Alert 询问用户是否真的想重置分数。但我想使用 Android 警报而不是 Javascript 警报。所以我创建了一个 Javascript 接口。
public class AlertJSInterface {
private Context context;
AlertJSInterface(Context c) {
context = c;
}
@JavascriptInterface
public boolean alert(String title, String message) {
AlertDialog.Builder alert = new AlertDialog.Builder(context);
alert.setTitle(title);
alert.setMessage(message);
alert.setCancelable(true);
alert.setPositiveButton("OK", new DialogInterface.OnClickListener() {
@Override
public void onClick(DialogInterface dialog, int which) {
}
});
alert.setNegativeButton("Cancel", new DialogInterface.OnClickListener() {
@Override
public void onClick(DialogInterface dialog, int id) {
dialog.cancel();
}
});
alert.show();
//want to return true if clicked ok
}
现在我需要 Javascript 中 Android 警报的 return 值。问题是 Android 警报有一个 ClickListener。但是我怎样才能将 return 的值变为 Javascript?
if(AndroidAlert.alert(resetScoreTitle, resetScoreAck) === true) {
resetAll();
}
如果在用户点击"OK"按钮后调用js函数呢?就像:
alert.setPositiveButton("OK", new DialogInterface.OnClickListener() {
@Override
public void onClick(DialogInterface dialog, int which) {
myWebView.loadUrl("javascript:resetAll();");
}
});
我已经为我的浏览器游戏创建了一个 Android WebView 应用程序。我使用 Javascript-Alert 询问用户是否真的想重置分数。但我想使用 Android 警报而不是 Javascript 警报。所以我创建了一个 Javascript 接口。
public class AlertJSInterface {
private Context context;
AlertJSInterface(Context c) {
context = c;
}
@JavascriptInterface
public boolean alert(String title, String message) {
AlertDialog.Builder alert = new AlertDialog.Builder(context);
alert.setTitle(title);
alert.setMessage(message);
alert.setCancelable(true);
alert.setPositiveButton("OK", new DialogInterface.OnClickListener() {
@Override
public void onClick(DialogInterface dialog, int which) {
}
});
alert.setNegativeButton("Cancel", new DialogInterface.OnClickListener() {
@Override
public void onClick(DialogInterface dialog, int id) {
dialog.cancel();
}
});
alert.show();
//want to return true if clicked ok
}
现在我需要 Javascript 中 Android 警报的 return 值。问题是 Android 警报有一个 ClickListener。但是我怎样才能将 return 的值变为 Javascript?
if(AndroidAlert.alert(resetScoreTitle, resetScoreAck) === true) {
resetAll();
}
如果在用户点击"OK"按钮后调用js函数呢?就像:
alert.setPositiveButton("OK", new DialogInterface.OnClickListener() {
@Override
public void onClick(DialogInterface dialog, int which) {
myWebView.loadUrl("javascript:resetAll();");
}
});