2016-07-26 20 views
-1

Wenn ich meine App öffne, wo ich eine Webansicht verwende, klicke ich auf den Filechooser und es passiert nichts. Während ich versuche auf der Website im Browser zu arbeiten funktioniert es.Filechooser funktioniert nicht in der Webansicht

Warum funktioniert der Dateichooser nicht in einem Android Webview?

Antwort

2

Sie haben die Javascript-Schnittstelle in Ihrem code.Basically Sie mit der Javascript und Ihre Aktivität kommunizieren zu implementieren. betrachten Sie dieses Beispiel und ändern Sie sich nach Ihren Bedürfnissen.

https://www.opengeeks.me/2015/08/filechooser-and-android-webview/

+0

Vielen Dank! Das funktioniert! Super! –

+0

Wie kann ich dieses Beispiel für mehr als nur Bilder machen. Ich möchte auch andere Dateien hochladen. –

0

Verwendung dieser Code für Datei von Gerät bekommen, wenn Webansicht öffnen:

web.setWebChromeClient(new WebChromeClient() 
    { 
      //The undocumented magic method override 
      //Eclipse will swear at you if you try to put @Override here 
     // For Android 3.0+ 
     public void openFileChooser(ValueCallback<Uri> uploadMsg) { 

      mUploadMessage = uploadMsg; 
      Intent i = new Intent(Intent.ACTION_GET_CONTENT); 
      i.addCategory(Intent.CATEGORY_OPENABLE); 
      i.setType("image/*"); 
      MyWb.this.startActivityForResult(Intent.createChooser(i,"File Chooser"), FILECHOOSER_RESULTCODE); 

      } 

     // For Android 3.0+ 
      public void openFileChooser(ValueCallback uploadMsg, String acceptType) { 
      mUploadMessage = uploadMsg; 
      Intent i = new Intent(Intent.ACTION_GET_CONTENT); 
      i.addCategory(Intent.CATEGORY_OPENABLE); 
      i.setType("*/*"); 
      MyWb.this.startActivityForResult(
      Intent.createChooser(i, "File Browser"), 
      FILECHOOSER_RESULTCODE); 
      } 

     //For Android 4.1 
      public void openFileChooser(ValueCallback<Uri> uploadMsg, String acceptType, String capture){ 
       mUploadMessage = uploadMsg; 
       Intent i = new Intent(Intent.ACTION_GET_CONTENT); 
       i.addCategory(Intent.CATEGORY_OPENABLE); 
       i.setType("image/*"); 
       MyWb.this.startActivityForResult(Intent.createChooser(i, "File Chooser"), MyWb.FILECHOOSER_RESULTCODE); 

      } 

    }); 



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