Autore Topic: webView ed input file  (Letto 554 volte)

Offline salvatore.zagarella

  • Utente normale
  • ***
  • Post: 239
  • Respect: +2
    • Mostra profilo
    • Ieeng Solution
webView ed input file
« il: 28 Ottobre 2013, 12:41:08 CET »
0
Salve ragazzi,
ho un problema che non so come risolvere..
Nella mia app (targetSdkVersion="14") ho una bella webview e dentro questa un campo di input di tipo file. Il problema è che cliccando sul campo di input non succede nulla; speravo si aprisse la mascherina per caricare immagini o simili ma nulla...

Come posso fare per risolvere?
Ho cercato in giro sul web ma le soluzioni proposte non mi funzionano..

 ???

Please..

Offline Paso

  • Utente junior
  • **
  • Post: 98
  • Respect: +17
    • Mostra profilo
  • Dispositivo Android:
    Samsung Galaxy sIII mini
  • Sistema operativo:
    Linux Mint 17 64-bit
Re:webView ed input file
« Risposta #1 il: 28 Ottobre 2013, 12:47:19 CET »
0
Posta il codice java!

Offline salvatore.zagarella

  • Utente normale
  • ***
  • Post: 239
  • Respect: +2
    • Mostra profilo
    • Ieeng Solution
Re:webView ed input file
« Risposta #2 il: 28 Ottobre 2013, 12:53:32 CET »
0
Ecco una parte del codice. La webview è dentro un fragment quindi l'activity è un extend del fragment.
Codice (Java): [Seleziona]
webView.setWebViewClient(new MyWebView(context, client, prefs){
    public void openFileChooser( ValueCallback uploadMsg, String acceptType ) {
    mUploadMessage = uploadMsg;
    Intent i = new Intent(Intent.ACTION_GET_CONTENT);
    i.addCategory(Intent.CATEGORY_OPENABLE);
    i.setType("*/*");
    MainActivity.this.startActivityForResult(
    Intent.createChooser(i, "File Browser"),FILECHOOSER_RESULTCODE);
}
});

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

Però non succede nulla...

Post unito: 28 Ottobre 2013, 15:06:55 CET
Che ne pensate??

Post unito: 30 Ottobre 2013, 10:03:55 CET
Ragazzi scusate..
Nessuno sa come risolvere il problema??

 :-(
« Ultima modifica: 30 Ottobre 2013, 10:03:55 CET da salvatore.zagarella, Reason: Merged DoublePost »

Offline salvatore.zagarella

  • Utente normale
  • ***
  • Post: 239
  • Respect: +2
    • Mostra profilo
    • Ieeng Solution
Re:webView ed input file
« Risposta #3 il: 30 Ottobre 2013, 18:23:25 CET »
0
Codice (Java): [Seleziona]
webView.loadData(responseString, "text/html; charset=UTF-8", null);                                                                            
                                        webView.setWebChromeClient(new WebChromeClient(){
                                                //The undocumented magic method override  
                                    //Eclipse will swear at you if you try to put @Override here  
                                    public void openFileChooser(ValueCallback<Uri> uploadMsg) {
                                        BodyActivity.this.showAttachmentDialog(uploadMsg);
                                    }

                                    // For Android > 3.x
                                    public void openFileChooser(ValueCallback<Uri> uploadMsg, String acceptType) {
                                        BodyActivity.this.showAttachmentDialog(uploadMsg);
                                    }

                                    // For Android > 4.1
                                    public void openFileChooser(ValueCallback<Uri> uploadMsg, String acceptType, String capture) {
                                        BodyActivity.this.showAttachmentDialog(uploadMsg);
                                    }
                                });
                                        webView.setWebViewClient(new MyWebView(context, client, prefs));

------




private void showAttachmentDialog(ValueCallback<Uri> uploadMsg) {
        this.mUploadMessage = uploadMsg;

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

        this.startActivityForResult(Intent.createChooser(i, "Choose type of attachment"), FILECHOOSER_RESULTCODE);
    }

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