Как я могу вызвать диалог из веб-просмотра? - PullRequest
1 голос
/ 07 января 2020

У меня есть веб-просмотр и класс с функциями, которые будут использоваться с javascript внутри веб-просмотра

класс с функциями (WebAppInterface. java):

public class WebAppInterface {
    Context mContext;

    WebAppInterface(Context c) {
        mContext = c;
    }

    @JavascriptInterface
    public void closeApp() {
        ((Activity)mContext).finishAffinity();
    }

    @JavascriptInterface
    public void refresh() {
        Intent i = new Intent(mContext, MainActivity.class);
        mContext.startActivity(i);
        ((Activity)mContext).finish();
    }
}

Как я могу вызвать / создать класс Dialog внутри этого файла?

Я пытался вызвать как:

Dialog ex = new Dialog();
ex.show(getSupportFragmentManager(), "Dialog");

, но это ничего не делает

1 Ответ

1 голос
/ 07 января 2020

Я надеюсь, что вы добавили в свою деятельность:

WebSettings webSettings = myWebView.getSettings();
webSettings.setJavaScriptEnabled(true);
myWebView.addJavascriptInterface(new WebAppInterface(this), "Android");

WebAppInterface не должен расширять Activity:

public class WebAppInterface {
Context mContext;

/** Instantiate the interface and set the context */
WebAppInterface(Context c) {
    mContext = c;
}

/** Show a toast from the web page */
@JavascriptInterface
public void showDialog(String text) {
    //here code of alert dialog 
AlertDialog.Builder builder = new AlertDialog.Builder(mContext);
    builder.setTitle("abcd");
    builder.setMessage(text);
    builder.setPositiveButton("Ok", new DialogInterface.OnClickListener() {
        @Override
        public void onClick(DialogInterface dialog, int which) {
            dialog.dismiss();
        }
    });
    Dialog dialog = builder.create();
    dialog.show();
}}

Теперь у вас есть контекст действия в классе, так что вы можете выполнять все другие задачи в этом классе

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...