首页 > 解决方案 > 在android的Web视图中单击javascript按钮时如何关闭警报对话框

问题描述

以下是我到目前为止尝试的代码:

TextView tv =findViewById(R.id.tv);
tv.setOnClickListener(new View.OnClickListener() {
    @RequiresApi(api = Build.VERSION_CODES.LOLLIPOP)
    @Override
    public void onClick(View v) {

        Dialog dialog=new Dialog(MainActivity.this, android.R.style.Theme_Dialog);
        dialog.requestWindowFeature(Window.FEATURE_NO_TITLE);
        dialog.getWindow().setBackgroundDrawable(getDrawable(R.drawable.rounded_rect));
        dialog.setContentView(R.layout.dialog);

        WebView view =dialog.findViewById(R.id.webview);
        WebSettings webSettings = view.getSettings();
        webSettings.setJavaScriptEnabled(true);

        view.loadUrl("https://www.journaldev.com");
        dialog.show();
    }
});
}

任何帮助表示赞赏!

我的要求是在警报对话框中加载 web 视图,并且 web 视图有一个名为“关闭”的 java 脚本按钮,点击 web 视图警报对话框内的关闭按钮应该被关闭。

如何在android中实现这一点?

标签: android

解决方案


要在您的 JavaScript 和 Android 代码之间绑定一个新接口,请调用addJavascriptInterface(),将一个类实例传递给它以绑定到您的 JavaScript 和一个您的 JavaScript 可以调用以访问该类的接口名称。

WebView webView = (WebView) findViewById(R.id.webview);
webView.addJavascriptInterface(new WebAppInterface(this), "Android");


<input type="button" value="Say hello" onClick="showAndroidToast('Hello Android!')" />

<script type="text/javascript">
    function showAndroidToast(toast) {
        Android.showToast(toast);
    }
</script>

示例代码在这里


推荐阅读