Ich benutze Webview-Komponente auf meiner Android App. Benutzer können Bilder aus der Android-Fotobibliothek laden und diese Bilder auf einer Webseite in der Webansicht anzeigen. Wie kann ich dieses Bild von Javascript auf meinen Backend-Server hochladen?So laden Sie Foto aus der Bibliothek in Webview in Android App
Unten ist mein Java-Code Bild chooser Verhalten zu handhaben:
setWebChromeClient(new WebChromeClient() {
@Override
public boolean onShowFileChooser(WebView webView, ValueCallback<Uri[]> filePathCallback, FileChooserParams fileChooserParams) {
Intent intent = new Intent(Intent.ACTION_PICK);
intent.setType("image/*");
intent.setAction(Intent.ACTION_GET_CONTENT);
Intent chooser = Intent.createChooser(intent, "Select Image");
activity.startActivityForResult(chooser, ResultCode.CHOOSE_PHOTO_REQUEST);
return false;
}
});
der obige Code Bild Picker zeigen wird und wenn ein Benutzer ein Bild auswählen, das onActivityResult wird das ausgewählte Bild Pfad Javascript passieren wie folgt:
if (resultCode == Activity.RESULT_OK) {
Uri imageUri = imageReturnedIntent.getData();
Log.d("IMAGE", "choose image uri " + imageUri);
String path = getRealPathFromURI(imageUri);
Log.d("IMAGE", "choose image real path " + path);
webView.loadUrl("javascript:choosePhotos('" + path + "')");
}
public String getRealPathFromURI(Uri contentUri) {
Cursor cursor = null;
try {
String[] proj = {MediaStore.Images.Media.DATA};
cursor = mainActivity.getContentResolver().query(contentUri, proj, null, null, null);
int column_index = cursor.getColumnIndexOrThrow(MediaStore.Images.Media.DATA);
cursor.moveToFirst();
return cursor.getString(column_index);
} finally {
if (cursor != null) {
cursor.close();
}
}
}
in Javascript, kann ich den Bildpfad auf einem <img src=''/>
Tag setzen die ausgewählten Bilder zu zeigen. Der Pfad ist ungefähr so: '/storage/emulated/0/DCIM/Camera/IMG_20160808_200837.jpg'
Es funktioniert hier gut. Aber jetzt möchte ich dieses Bild auf meinen Backend-Server hochladen. Wie kann Javascript diesen Pfad behandeln: /storage/emulated/0/DCIM/Camera/IMG_20160808_200837.jpg.
Versuchen Sie, diese Lösung erhalten, wo Sie Java-Code von Javascript also tun, um die Upload-nativ ausführen kann - http://stackoverflow.com/questions/10389572/call-java-function -from-javascript-über-android-webview – Tasos