在安卓Android APP里面无法上传文件

unicac 学习分享 2016-05-26

是webview默认禁用了上传文件。可以通过下面的方法解决这个问题

解决方法与步骤:

1、在webview所在Activity中重写onActivityResult

            @Override
  protected void onActivityResult(int requestCode, int resultCode, Intent data) {
        if(requestCode==FILECHOOSER_RESULTCODE) { 
           if (null == mUploadMessage) return; 
                    Uri result = data == null || resultCode != RESULT_OK ? null 
                            : data.getData(); 
                    mUploadMessage.onReceiveValue(result); 
                    mUploadMessage = null; 
                      
          }
      }

2、在WebChromeClient的设定中添加下面这段代码

    setting.setWebChromeClient(new WebChromeClient() {
         // For Android 3.0+
     public void openFileChooser(ValueCallback<Uri> uploadMsg, String acceptType) { 
            if (mUploadMessage != null) return;
            mUploadMessage = uploadMsg;  
            Intent i = new Intent(Intent.ACTION_GET_CONTENT);
            i.addCategory(Intent.CATEGORY_OPENABLE);
            i.setType("*/*");
                startActivityForResult( Intent.createChooser( i, "File Chooser" ), BrowserActivity.FILECHOOSER_RESULTCODE );
             }
         // For Android < 3.0
     public void openFileChooser(ValueCallback<Uri> uploadMsg) {
            openFileChooser( uploadMsg, "" );
     }
       });
    // For Android  > 4.1.1
   public void openFileChooser(ValueCallback<Uri> uploadMsg, String acceptType, String capture)      {
           openFileChooser(uploadMsg, acceptType);
   }

评论(0)

发布评论