2016-07-26 2 views
-1

Lorsque j'ouvre mon application où j'utilise un webview, je clique sur le filechooser et rien ne se passe. Pendant que j'essaye est sur le site Web dans le navigateur cela fonctionne. Pourquoi ne fonctionne-t-il pas le filechooser dans un Android Webview?Filechooser ne fonctionne pas dans webview

Répondre

2

Vous devez implémenter l'interface javascript dans votre code.Basically vous devez communiquer avec le Javascript et votre activité. considérez cet échantillon et changez selon vos besoins.

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

+0

Merci! Cela marche! Super! –

+0

Comment puis-je faire cet exemple pour plus que des images. Je veux aussi télécharger d'autres fichiers. –

0

utiliser ce code pour obtenir le fichier du périphérique lorsque WebView ouvert:

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; 
    } 
    }