<html>
  
  <body>
  
  <script>
  
  function showAlert(){
  
  alert("JavaScript - hello , world !");
  
  }
  
  function showConfirm(){
  
  confirm("访问 https://blog.csdn.net/zhangphil");
  
  }
  
  function showPrompt(){
  
  var string=prompt("请输入用户名","用户名");
  
  }
  
  </script>
  
  <button type="button" id="button1" onclick="showAlert()">showAlert</button>
  
  <br>
  
  <button type="button" id="button2" onclick="showConfirm()">showConfirm</button>
  
  <br>
  
  <button type="button" id="button3" onclick="showPrompt()">showPrompt</button>
  
  </body>
  
  </html>
  
  上层Java代码:
  
  import android.content.DialogInterface;
  
  import android.os.Bundle;
  
  import android.support.v7.app.AlertDialog;
  
  import android.support.v7.app.AppCompatActivity;
  
  import android.webkit.JsPromptResult;
  
  import android.webkit.JsResult;
  
  import android.webkit.WebChromeClient;
  
  import android.webkit.WebSettings;
  
  import android.webkit.WebView;
  
  import android.widget.Toast;
  
  public class MainActivity extends AppCompatActivity {
  
  private WebView mWebView;
  
  @Override
  
  protected void onCreate(Bundle savedInstanceState) {
  
  super.onCreate(savedInstanceState);
  
  setContentView(R.layout.activity_main);
  
  mWebView = findViewById(R.id.webview);
  
  mWebView.loadUrl("file:///android_asset/web.html");
  
  WebSettings mWebSettings = mWebView.getSettings();
  
  //启用JavaScript。
  
  mWebSettings.setJavaScriptEnabled(www.qinlinyu.cn true);
  
  mWebSettings.setUseWideViewPort(true);
  
  mWebSettings.setJavaScriptCanOpenWindowsAutomatically(true);
  
  mWebView.setWebChromeClient(new WebChromeClient() {
  
  // 拦截JavaScript的Alert弹窗。
  
  @Override
  
  public boolean onJsAlert(WebView view, String url, String message, JsResult result) {
  
  Toast.makeText(getApplicationContext(www.michenggw.com), "onJsAlert:" + message + "," + result.toString(), Toast.LENGTH_SHORT).show();
  
  result.confirm();
  
  //true,拦截JavaScript的弹窗。如果拦截了,不会出现弹窗。
  
  //false,不拦截JavaScript的弹窗,由WebView自行决定弹窗。
  
  return true;
  
  }
  
  // 拦截JavaScript的Confirm弹窗。
  
  @Override
  
  public boolean onJsConfirm(WebView view, String url, String message, JsResult result) {
  
  new AlertDialog.Builder(MainActivity.this)
  
  .setTitle("Android拦截JavaScript的Confirm弹窗")
  
  .setMessage(message + " , 确定吗?")
  
  .setPositiveButton("确定访问", new DialogInterface.OnClickListener() {
  
  @Override
  
  public void onClick(DialogInterface dialog, int which) {
  
  result.confirm();
  
  }
  
  })
  
  .setNegativeButton("取消访问", new DialogInterface.OnClickListener() {
  
  @Override
  
  public void onClick(DialogInterface dialog, int which) {
  
  result.cancel(www.dasheng178.com);
  
  }
  
  }).setCancelable(false)www.mingheyl178.com/.show();
  
  //true,拦截JavaScript的弹窗。如果拦截了,不会出现弹窗。
  
  //false,不拦截JavaScript的弹窗,由WebView自行决定弹窗。
  
  return true;
  
  }
  
  @Override
  
  public boolean onJsPrompt(WebView view, String url, String message, String defaultValue, JsPromptResult result) {
  
  System.out.println(result);
  
  result.confirm();
  
  //true,拦截JavaScript的弹窗。如果拦截了,不会出现弹窗。
  
  //false,不拦截JavaScript的弹窗,由WebView自行决定弹窗。
  
  return false;
  
  }
  
  });
  
  }

Android原生代码拦截H5 Web页面中JavaScript弹窗/弹框的更多相关文章

  1. PhoneGap或者Cordova框架下实现Html5中JS调用Android原生代码

    PhoneGap或者Cordova框架下实现Html5中JS调用Android原生代码 看看新闻网>看引擎>开源产品 0人收藏此文章, 发表于8小时前(2013-09-06 00:39) ...

  2. php中调用这个功能可以在web页面中显示hello world这个经典单词

    php程序写的时间长了,自然对他所提供的功能了如指掌,他所提供的一大堆功能,真是觉得很好用,但有时候会发现php也缺少一些功能,自己总是会产生为php添加一些自定义的功能的想法.久而久之,终于今天憋不 ...

  3. 关于在asp.net的web页面中的全局变量问题

    在asp.net的web页面中是不是没有全局变量?有的,在Class类内部的都是,只不过在WebWofm程式中跟WinForm和Console程式有些区别,当页面刷新时,它们的值不会保持,依然会再次初 ...

  4. [置顶] 读取pdf并且在web页面中显示

    读取pdf并且在web页面中显示 if (System.IO.File.Exists(f)) { Response.ContentType = "applicationpdf"; ...

  5. Android : 如何在WebView显示的页面中查找内容

    Android : 如何在WebView显示的页面中查找内容 Author : Aoyousatuo Zhao http://blog.sina.com.cn/aoyousatuo WebView是A ...

  6. web页面中可以包含多个对象

    # encoding=utf-8 #python 2.7.10 #xiaodeng #web页面中可以包含多个对象 #HTTP权威指南 10页 #应用程序完成一项任务时通常会发布多个http事务.如: ...

  7. 企业级监控软件Zabbix搭建部署之zabbix在WEB页面中的配置

    企业级监控软件zabbix搭建部署之zabbix在WEB页面中的配置 企业级监控软件zabbix搭建部署之zabbix在WEB页面中的配置 关于安装请看 http://www.linuxidc.com ...

  8. 微信开发之移动手机WEB页面(HTML5)Javascript实现一键拨号及短信发送功能

    在做一个微信的微网站中的一个便民服务电话功能的应用,用到移动web页面中列出的电话号码,点击需要实现调用通讯录,网页一键拨号的拨打电话功能. 如果需要在移动浏览器中实现拨打电话,发送email,美国服 ...

  9. [HTML] 微信开发之移动手机WEB页面(HTML5)Javascript实现一键拨号及短信发送功能

    在做一个微信的微网站中的一个便民服务电话功能的应用,用到移动web页面中列出的电话号码,点击需要实现调用通讯录,网页一键拨号的拨打电话功能. 如果需要在移动浏览器中实现拨打电话,发送email,美国服 ...

随机推荐

  1. spring cloud 服务注册中心eureka高可用集群搭建

    spring cloud 服务注册中心eureka高可用集群搭建 一,准备工作 eureka可以类比zookeeper,本文用三台机器搭建集群,也就是说要启动三个eureka注册中心 1 本文三台eu ...

  2. CC2541工程优化等级的问题

    1. 调试工程的时候发现,优化等级稍微调高一级,就容易出问题,只能用None,其他等级会出现数据丢失的现象.

  3. Ruby基础教程 1-10

    类结构 1.数值类结构     Fixnum到Bignum会自动转换   2.常用数值表示   3. ans=10.divmod(3) ans[0]是商  ans[1]是余数   4.实例方法roun ...

  4. Qt-网络与通信-UDP网络通讯

    用户数据报协议是一种简单的轻量级.不可靠.面向数据.无连接的传出层协议,可以应用于在可靠性不是十分重要的场合,如短消息,广播信息等. 例如一下场合 网络数据大多为短消息 拥有大量客户端 对数据安全性无 ...

  5. AirtestIDE实践一:梦幻西游手游师门任务自动化

    Airtest Project是网易自研的游戏自动化项目.Airtest IDE是这个项目的一个IDE,就像Eclipse.Pycharm一样,是一个集成开发工具.Airtest框架是一个基于Open ...

  6. Java开发工程师(Web方向) - 04.Spring框架 - 第3章.AOP技术

    第3章--AOP技术 Spring框架 - AOP概述 笔记https://my.oschina.net/hava/blog/758873Spring框架 - AOP使用 笔记https://my.o ...

  7. JAVA中 "\" 和 "/" 的区别

    1.在java中路径一般用”/” 2.linux.unix中的路径一般用”/” 3.windows中的路径一般用”\” 所以在java中写windows路径一般用”/”,或用“\”将”\”转义一下(& ...

  8. 小球下落 (Dropping Balls,UVA 679)

    题目描述: 题目思路: 1.直接用数组模拟二叉树下落过程 //超时 #include <iostream> #include <cstring> using namespace ...

  9. RL_Learning

    Key Concepts in RL 标签(空格分隔): RL_learning OpenAI Spinning Up原址 states and observations (状态和观测) action ...

  10. php常用方法汇总

    xml格式转成array <?php $str='<xml><node><![CDATA[content]]></node></xml> ...