如何上传照片从图书馆在webview在android应用程序
How to upload photo from library in webview in android app
我在我的android应用程序上使用webview组件。用户可以从android照片库中加载图像,并在webview的网页上显示这些图像。我如何从javascript上传这些图像到我的后端服务器?
下面是我处理图像选择器行为的java代码: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;
}
});
上面的代码将显示图像选择器,当用户选择图像时,onActivityResult将所选图像路径传递给javascript,如下所示:
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();
}
}
}
在javascript中的中,我可以将图像路径放在<img src=''/>
标记上以显示所选图像。路径类似于'/storage/emululated/0/DCIM/Camera/IMG_20160808_200837.jpg'
这里工作得很好。但现在我想把这张图片上传到后端服务器。javascript如何处理这个路径:/storage/emululated/0/DCIM/Camera/IMG_20160808_200837.jpg.
您可以使用filePathCallback将选定的文件传递给webview。只需创建一个全局变量
ValueCallback filePathCallback;
并将onShowFileChooser()方法中的参数赋值给它。然后你可以在onActivityResult()中使用这个回调将选定的文件传递给webview:
Uri results[] = new Uri[]{imageUri};
filePathCallback.onReceiveValue(结果);
那么在HTML上你会得到file在
相关文章:
- 如何在webView,Android中从@JavascriptInterface方法调用Javascript
- 如何检测WebView Android中的按钮点击
- JavaScript in WebView - Android Studio
- 如何在webview android中强制打开电子邮件验证
- shouldoverrideurlloading not called Webview Android
- WebView Android 和 JavaScript 调整大小
- css 背景图像未在 webview android 中加载
- 在 WebView Android 中扫描条形码
- 通过JavaScript或其他内容在WebView Android的输入框中填充一些文本
- 在 WebView android 中自动填写字段
- 如何在webview android SDK中调用谷歌搜索按钮
- jqmath在webView android中左对齐
- JavaScriptInterface类从未被调用来在webview android上加载html
- 在禁用javascript的webview android中执行javascript
- webview android最大限度地减少Java脚本加载时间
- 从webview Android调用javascript函数
- 在WebView Android中注入JavaScript
- 如何模拟键盘事件与javascript(或不是javascript)在webview (android)键入文本区
- 家长在webview Android中不工作
- WEBVIEW-Android无法在chrome浏览器中实现类似css的功能