原理是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. [转]]Android 应用签名提权方法
  3. 【Android】android开发---实现屏幕旋转的两种方法
  4. Android 左右滑动切换页面或Activity的效果实现
  5. Android-缓存数据保存-通用方法
  6. webViewJavascriptBridge踩坑【页面刚开始bridge失效一阵】
  7. android闹钟――原代码
  8. Android 中 ListView Adapter getView 被多次调用问题 解决方法

随机推荐

  1. android 控件属性 116
  2. Android(安卓)Tutorials
  3. Android系统自带样式(android:theme)
  4. Android——listview android:cacheColor
  5. Android(安卓)Button 常用属性设置,圆角,边
  6. Android(安卓)Shape属性
  7. Android系统自带样式---android:theme
  8. Android(安卓)Button 常用属性设置,圆角,边
  9. Android系统自带样式(android:theme)
  10. 推荐android几本研究深入的书籍(对开发人