如何使用JavascriptInterface将Android的Alert返回值返回给WebView?

时间:2018-06-07 10:53:57

标签: javascript android webview interface alert

我为我的browsergame创建了一个Android WebView应用程序。我使用Javascript-Alert询问用户是否真的要重置分数。但我想使用Android Alert而不是Javascript Alert。所以我创建了一个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 Alert的返回值。问题是Android Alert有一个ClickListener。但是我怎样才能将值返回给Javascript?

if(AndroidAlert.alert(resetScoreTitle, resetScoreAck) === true) {
    resetAll();
}

1 个答案:

答案 0 :(得分:0)

如果在用户单击“确定”按钮后调用js函数,该怎么办?就像:

alert.setPositiveButton("OK", new DialogInterface.OnClickListener() {
    @Override
    public void onClick(DialogInterface dialog, int which) {
       myWebView.loadUrl("javascript:resetAll();");
    }
});