android - 在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中实现这一点?
解决方案
要在您的 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>
推荐阅读
- apache - Drupal 7 .htaccess 文件不强制重定向到 HTTPS
- python - PySide/PyQt:在 GUI 加载后执行函数
- javascript - jQuery更改事件顺序
- vba - 基于前一个单元格中的数据的 Excel VBA 前导零
- maven - 帮助 Ivy 知道两个组织不同的工件是相同的
- javascript - 使用 lodash 方法返回新形式的数组
- dictionary - 如何在 Java 8 中使用方法引用进行 Map 合并?
- ruby - 使用 Logstash 和 Ruby 提取嵌套对象
- asp.net - ASP.NET MVC 5 掩码下载链接到 Amazon S3 资源
- php - Laravel 自定义异常