原理是webview拦截页面的alert重写onJsAlert方法,根据alert(message)的message判断做指定的操作。
android部分代码:
WebSettings settings = baseView.getSettings();// 设置与Js交互的权限settings.setJavaScriptEnabled(true);// 设置允许JS弹窗settings.setJavaScriptCanOpenWindowsAutomatically(true);//不用缓存settings.setCacheMode(WebSettings.LOAD_NO_CACHE);//在cookie中放入表示是app访问的标识//创建CookieSyncManagerCookieSyncManager.createInstance(this);//得到CookieManagerCookieManager cookieManager = CookieManager.getInstance();//使用cookieManager.setCookie()向URL中添加CookiecookieManager.setCookie(webUrl, "visitor=app");if (Build.VERSION.SDK_INT < Build.VERSION_CODES.LOLLIPOP) {    CookieSyncManager.getInstance().sync();} else {    CookieManager.getInstance().flush();}//通过拦截js提示框的方法,调用java代码baseView.setWebChromeClient(new WebChromeClient() {    @Override    public boolean onJsAlert(WebView view, String url, String message, JsResult result) {        if("XXXXXX".equals(message)) {            //......            result.cancel();//return true;时只执行一次,需要加上result.cancel();            return true;//不弹出提示框        }else {            return super.onJsAlert(view, url, message, result);        }    }});//加载页面baseView.loadUrl(webUrl);
注意:1、return true;是表示拦截处理完成了,不需要用户点击弹出框,页面弹出框自动退出。
2、result.cancel();是让弹出框以取消的方式退出,不然页面之后就不再执行相同的alert了。
远端服务器上的js的调用代码:
   
alert('XXXXXX');
最后介绍两个android代码调用js代码的方法:
1、
baseView.loadUrl("javascript:showPhoto('" + base64Image + "')");
2、
baseView.evaluateJavascript("javascript:showPhoto('" + base64Image + "')", new ValueCallback() {    @Override    public void onReceiveValue(String value) {        //此处为 js 返回的结果    }});






更多相关文章

  1. Android(安卓)入门到精通 (界面编程#2-Menu)
  2. Android——最新LitePal使用
  3. 通过ijetty获取android设备的截图
  4. android中开机自动运行程序
  5. Android下载网络文本
  6. React Native For Android初探
  7. 用Android代码实现自动打开USB调试
  8. android onTouchEvent和setOnTouchListener中onTouch的区别
  9. 【Android】ToolBar设置NavigationIcon不显示异常或自定义失败异

随机推荐

  1. Android(安卓)MediaCodec H264编码设置Ma
  2. Android(安卓)View
  3. Android(安卓)横竖屏切换时候重新进行数
  4. Android安卓应用版本命名规范
  5. android 流量管理
  6. Android开发面试经——2.常见Android基础
  7. android xml 设置半透明
  8. 带着问题学习 Android(安卓)Handler 消息
  9. android设置跑马灯效果
  10. Android(安卓)进程管理