2016-04-28 11 views
1

Ich mache meine eigene Android-Anwendung, die 90% der Datei-Upload benötigt.Datei hochladen Android 4.4 WebView

Ich habe den WebView Lollipop-Code, und es funktioniert, sehr gut, aber wenn ich versuche, die Dateiauswahl in Android 4.4 zu öffnen, funktioniert die Eingabe nicht.

Kann mir jemand helfen? Hier ist mein Code:

mWebView.setWebChromeClient(new WebChromeClient() { 

     public boolean onShowFileChooser(
       WebView webView, ValueCallback<Uri[]> filePathCallback, 
       WebChromeClient.FileChooserParams fileChooserParams) { 
      if(mFilePathCallback != null) { 
       mFilePathCallback.onReceiveValue(null); 
      } 
      mFilePathCallback = filePathCallback; 

      Intent takePictureIntent = new Intent(MediaStore.ACTION_IMAGE_CAPTURE); 
      if (takePictureIntent.resolveActivity(getActivity().getPackageManager()) != null) { 
       // Create the File where the photo should go 
       File photoFile = null; 
       try { 
        photoFile = createImageFile(); 
        takePictureIntent.putExtra("PhotoPath", mCameraPhotoPath); 
       } catch (IOException ex) { 
        // Error occurred while creating the File 
        Log.e(TAG, "Unable to create Image File", ex); 
       } 

       // Continue only if the File was successfully created 
       if (photoFile != null) { 
        mCameraPhotoPath = "file:" + photoFile.getAbsolutePath(); 
        takePictureIntent.putExtra(MediaStore.EXTRA_OUTPUT, 
          Uri.fromFile(photoFile)); 
       } else { 
        takePictureIntent = null; 
       } 
      } 

      Intent contentSelectionIntent = new Intent(Intent.ACTION_GET_CONTENT); 
      contentSelectionIntent.addCategory(Intent.CATEGORY_OPENABLE); 
      contentSelectionIntent.setType("image/*"); 

      Intent[] intentArray; 
      if(takePictureIntent != null) { 
       intentArray = new Intent[]{takePictureIntent}; 
      } else { 
       intentArray = new Intent[0]; 
      } 

      Intent chooserIntent = new Intent(Intent.ACTION_CHOOSER); 
      chooserIntent.putExtra(Intent.EXTRA_INTENT, contentSelectionIntent); 
      chooserIntent.putExtra(Intent.EXTRA_TITLE, "Escoge tu imagen"); 
      chooserIntent.putExtra(Intent.EXTRA_INITIAL_INTENTS, intentArray); 

      startActivityForResult(chooserIntent, INPUT_FILE_REQUEST_CODE); 

      return true; 
     } 
    }); 

Antwort

-1

Ich habe Ihren Code versucht und habe das Problem gesehen. Überprüfen Sie diese code example, die auf allen Android-Gerät funktioniert, ermöglicht es, Bilddateien auf Ihre Android-Anwendung mit Webviewclient und Webchrome-Client hochladen.

0

Android 4.4 hat einen WebView-Fehler, der die Dateieingaben unterbrach. Meine Problemumgehung besteht darin, mithilfe von JavaScript zwischen der App und der Website zu kommunizieren und zu erkennen, wann der Benutzer eine Datei hochladen und von der App hochladen möchte (außerhalb der Webansicht). Anschließend wird die Webansicht aktualisiert, wenn die Datei geladen ist die Website, auf der sich die Datei im Server befindet.

Bitte überprüfen Sie meine Antwort hier, wo ich meine Lösung erklären: https://stackoverflow.com/a/43443981/2566593

Verwandte Themen