在webview中使用Android 4.4.4上传文件

时间:2016-04-14 07:25:23

标签: java android file-upload webview

我正在尝试通过Android中的WebView上传图片。问题是缺少内容类型。看起来它在Android 4.4.4中是一个已知的issue。在这种情况下可以做些什么?我在类似的问题上找到了这个answer,但我无法弄清楚如何实现这个解决方案。我可以访问服务器端。

感谢。

1 个答案:

答案 0 :(得分:0)

在你找到的答案中,他们打电话给

startActivityForResult( Intent.createChooser( i, "File Chooser" ), MainActivity.FILECHOOSER_RESULTCODE)

什么意思,你应该在这个方法中得到结果

  protected void onActivityResult( int requestCode, int resultCode, Intent data )
  {
     if(requestCode == MainActivity.FILECHOOSER_RESULTCODE)
     {
       if(resultCode == RESULT_OK)
         // TODO: Check Results of data-intent
     }
  }

在此方法中,您可以处理文件选择器的结果并自行上传(例如使用filtersURLConnection)。

更新2016-10-19

这是一个存储ValueCallback的示例,并将ChooserIntent的结果传递回回调。 我没有尝试这个例子,但我认为它应该从webview中触发一个自己的上传方法。

  private ValueCallback<Uri> mUploadMessage;
  private Uri mCapturedImageURI = null;

  protected void onActivityResult( int requestCode, int resultCode, Intent data )
  {
     if(requestCode == MainActivity.FILECHOOSER_RESULTCODE)
     {
       if(resultCode == RESULT_OK) {
          result = intent == null ? mCapturedImageURI : intent.getData(); 
          mUploadMessage.onReceiveValue(result);
       }
     }
  }

onReceiveValue(结果);

来源: ApacheHttpClient

查看此主题以获取更多示例http://androidexample.com/Open_File_Chooser_With_Camera_Option_In_Webview_File_Option/index.php?view=article_discription&aid=128