2017-07-24 3 views
0

J'essaie d'entrer le fichier image dans ma page html dans webview 4.2.2 Mais le fichier d'entrée ne fonctionne pas. Avez-vous la solution à mon problème? s'il vous plaît aidez-moiChoisir le fichier dans Webview 4.2.2 (Android Studio)

Ceci est mon code (Tambah.java):

public class Tambah extends Activity { 

private TextView text2; 

@Override 
protected void onCreate(Bundle savedInstanceState) { 
    super.onCreate(savedInstanceState); 
    setContentView(R.layout.tambah); 

    final WebView myWebView = (WebView) findViewById(R.id.webPage); 
    WebSettings webSettings = myWebView.getSettings(); 
    webSettings.setJavaScriptEnabled(true); 
    myWebView.loadUrl("http://192.168.1.104/safa/tambah"); 
    myWebView.setOnKeyListener(new View.OnKeyListener() 
    { 
     @Override 
     public boolean onKey(View v, int keyCode, KeyEvent event) 
     { 
      if(event.getAction() == KeyEvent.ACTION_DOWN) 
      { 
       WebView myWebView = (WebView) v; 

       switch(keyCode) 
       { 
        case KeyEvent.KEYCODE_BACK: 
         if(myWebView.canGoBack()) 
         { 
          myWebView.goBack(); 
          return true; 
         } 
         break; 
       } 
      } 

      return false; 
     } 
    }); 
} 

}

+0

Avez-vous une autorisation Internet déclarée dans le manifeste? –

+0

J'ai déjà déclaré, –

Répondre

1

Vous devez remplacer la méthode onShowFileChooser dans votre WebChromeClient comme ci-dessous:

mWebView.setWebChromeClient(new WebChromeClient() { 

      @Override 
      public boolean onShowFileChooser(WebView webView, ValueCallback<Uri[]> filePathCallback, FileChooserParams fileChooserParams) { 
       mFilePathCallback = filePathCallback; 
       Intent intent = new Intent(Intent.ACTION_GET_CONTENT); 
       intent.setType("*/*"); 
       startActivityForResult(intent, PICKFILE_REQUEST_CODE); 
       return true; 
      } 
     }); 

Ensuite, onActivityResult, procédez comme suit:

@Override 
    protected void onActivityResult(int requestCode, int resultCode, Intent intent) { 
     if (requestCode == PICKFILE_REQUEST_CODE) { 
      //Uri result = intent.getData(); 
      Uri result = intent == null || resultCode != RESULT_OK ? null 
        : intent.getData(); 
      if(result != null){ 
       Uri[] resultsArray = new Uri[1]; 
       resultsArray[0] = result; 
       mFilePathCallback.onReceiveValue(resultsArray); 
      } 
      else 
       mFilePathCallback.onReceiveValue(null); 

     } 
    } 

et définir un int statique pour votre code de demande dans votre activité comme:

private static final int PICKFILE_REQUEST_CODE = 1; 

Il devrait fonctionner comme un charme.

+0

Merci beaucoup @Rahul Sharma, vous m'avez aidé. Ce code fonctionne pour moi. –

+0

@dickynugrohohidayatulloh s'il vous plaît accepter la réponse alors. :) –