Android中webview无法弹出文件选择框,点击按钮没反应的问题

以前写的项目时,遇到过这样一个问题,在ios和微信都可以,就是android不行,尴尬的,无论你多使劲点都发现无法弹出安卓原生文件选择界面,简直要崩溃了尴尬最后通过一番资料查询,发现要重写WebChromeClient类里面的方法--


先说一下执行的步骤:

       1.通过webview.setWebChromeClient(),传入一个WebChromeClient的实现类,在WebChromeClient实现类里面我们要重写里面的openFileChooser方法,这个方法会在文件准备上传时进行回调。

       2.在openFileChooser这个方法里面我们设置Intent打开支持第三方文件的应用

       3.然后在ActivityResult将第三方应用提供的内容通过ValueCallback的存储形式回传给webview。

   一言不合直接贴代码..

[java]  view plain   copy
  1. <span style="color:#ff6666;font-size:24px;">  </span><span style="font-size:18px;">public void openFileChooser(ValueCallback<Uri> uploadMsg) {  
  2.             Log.d(TAG, "openFileChoose(ValueCallback<Uri> uploadMsg)");  
  3.             mUploadMessage = uploadMsg;  
  4.             Intent i = new Intent(Intent.ACTION_GET_CONTENT);  
  5.             i.addCategory(Intent.CATEGORY_OPENABLE);  
  6.             i.setType("*/*");  
  7.             MainActivity.this.startActivityForResult(Intent.createChooser(i, "File Chooser"), FILECHOOSER_RESULTCODE);  
  8.       }  
  9.       public void openFileChooser( ValueCallback uploadMsg, String acceptType ) {  
  10.             Log.d(TAG, "openFileChoose( ValueCallback uploadMsg, String acceptType )");  
  11.             mUploadMessage = uploadMsg;  
  12.             Intent i = new Intent(Intent.ACTION_GET_CONTENT);  
  13.             i.addCategory(Intent.CATEGORY_OPENABLE);  
  14.             i.setType("*/*");  
  15.             MainActivity.this
  • 1
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值