Как вернуть возвращаемое значение оповещения Android в WebView с помощью JavascriptInterface? - PullRequest
0 голосов
/ 07 июня 2018

Я создал приложение 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
}

Теперь мне нужно возвращаемое значение оповещения Android внутри Javascript.Проблема в том, что в Android Alert есть ClickListener.Но как я могу получить значение и вернуть его в Javascript?

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

1 Ответ

0 голосов
/ 07 июня 2018

Что если вы вызовете функцию js после того, как пользователь нажмет кнопку «ОК».Это как:

alert.setPositiveButton("OK", new DialogInterface.OnClickListener() {
    @Override
    public void onClick(DialogInterface dialog, int which) {
       myWebView.loadUrl("javascript:resetAll();");
    }
});
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...