2017-07-24 9 views
0

Ich versuche, die Bilddatei in meiner HTML-Seite in Webview 4.2.2 einzugeben, aber die Eingabedatei funktioniert nicht. Hast du die Lösung für mein Problem? bitte helfen Sie mirWählen Sie Datei in Webview 4.2.2 (Android Studio)

Dies ist mein 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

Haben Sie eine Internet-Berechtigung im Manifest? –

+0

Ich habe bereits erklärt, –

Antwort

1

Sie haben die onShowFileChooser Methode in Ihrer WebChromeClient außer Kraft zu setzen wie unten:

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

Und dann onActivityResult tun Sie Folgendes:

@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); 

     } 
    } 

und eine statische int für Ihre Anfrage Code in Ihre Aktivitäten wie definieren:

private static final int PICKFILE_REQUEST_CODE = 1; 

Es sollte wie Charme arbeiten.

+0

Vielen Dank @Rahul Sharma, Sie haben mir geholfen. Dieser Code funktioniert für mich. –

+0

@dickynugrohohidayatulloh Bitte akzeptieren Sie die Antwort dann. :) –