德哥盛世网络科技

 找回密码
 立即注册
查看: 1080|回复: 0

关于Android中webview交互弹出网页对话框的处理

[复制链接]

725

主题

1116

帖子

8816

积分

管理员

CEO

Rank: 9Rank: 9Rank: 9

积分
8816

最佳新人活跃会员热心会员推广达人宣传达人

QQ
发表于 2018-5-30 23:21:18 | 显示全部楼层 |阅读模式

如果需要弹出网页的对话框则设置webview.setWebChromeClient(new MyWebChromeClient())即可;

如果需要自己处理网页对话框,则可以继承WebChromeClient重写其中的方法,这里以alert对话框为例,其他类似

[java] view plain copy



  • class MyWebChromeClient extends WebChromeClient {  
  •   
  •         /**
  •          * 处理加载进度
  •          *
  •          * @param view
  •          * @param newProgress
  •          */  
  •         @Override  
  •         public void onProgressChanged(WebView view, int newProgress) {  
  •             pro_webview.setVisibility(View.VISIBLE);  
  •             pro_webview.setProgress(newProgress);  
  •             if (pro_webview.getProgress() == pro_webview.getMax()) {  
  •                 pro_webview.setVisibility(View.GONE);  
  •             }  
  •             super.onProgressChanged(view, newProgress);  
  •         }  
  •   
  •         /**
  •          * alert弹框
  •          *
  •          * @return
  •          */  
  •         @Override  
  •         public boolean onJsAlert(WebView view, String url, final String message, JsResult result) {  
  •             Log.d("main", "onJsAlert:" + message);  
  •             runOnUiThread(new Runnable() {  
  •                 @Override  
  •                 public void run() {  
  •   
  •                     new AlertDialog.Builder(VoucherActivity.this)  
  •                             .setTitle("提示")  
  •                             .setMessage(message)  
  •                             .setPositiveButton("确定", new DialogInterface.OnClickListener() {  
  •                                 @Override  
  •                                 public void onClick(DialogInterface dialog, int which) {  
  •                                     webview.reload();//重写刷新页面  
  •   
  •                                 }  
  •                             })  
  •                             .setNegativeButton("取消",null)  
  •                             .show();  
  •   
  •                 }  
  •             });  
  •             result.confirm();//这里必须调用,否则页面会阻塞造成假死  
  •             return true;  
  •         }  
  •     }  


不抛弃不放弃
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

QQ|手机版|小黑屋|德哥数据中心|德哥盛世花园|德哥盛世安防|德哥盛世影视|德哥盛世网络科技 ( 鄂ICP备15011170号-4 )

GMT+8, 2020-11-24 14:57 , Processed in 1.128404 second(s), 23 queries .

Powered by Discuz! X3.4

© 2001-2017 Comsenz Inc.

快速回复 返回顶部 返回列表