如何从 webview 调用对话框?

How can I call a dialog from a webview?

我有一个 webview 和一个 class,其功能将在 webviewjavascript 中使用

class 具有函数 (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();
    }
}

如何在这个文件中call/create一个对话框class?

我试过像这样打电话:

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

但它什么也没做

希望您在 activity 中添加:

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();
}}

现在您在 class 中拥有 activity 上下文,因此您可以在此 class

中执行所有其他任务