前提:需要首先实现web端的网页上传图片(只要网页上传图片成功,后续集成和android部分的相关操作,就可以成功实现图片上传)
步骤:
- web端实现网页上传
- web嵌入安卓webview实现安卓手机拍照和选择图片上传
问题:
- 对安卓开发不太了解的web开发小伙伴,需要粗略的了解一下安卓开发的一些基本内容,这一步需要自己去适当的学习,如果这一步没有,那就不用往下看了
- 图片上传和拍照上传,需要的一些权限
- 高安卓版本的手机拍照上传,需要进行的额外操作
web端实现网页上传的代码这边就不赘述了,需要了解的,可以联系我vx: 18918813817
接下来就是安卓部分的相关代码
// 拍照 + 文件选择
private android.webkit.ValueCallback<Uri[]> mUploadCallbackAboveL;
private Uri imageUri;
private int REQUEST_CODE = 1234;
// 需要实现图片上传,需要重载onShowFileChooser方法
private WebChromeClient webChromeClient = new WebChromeClient() {
@Override
public boolean onShowFileChooser(WebView webView, ValueCallback<Uri[]> filePathCallback, FileChooserParams fileChooserParams) {
mUploadCallbackAboveL = filePathCallback;
try {
takePhoto();
} catch (Exception e) {
Log.e("JKT", e.toString());
}
return true;
}
};
这里是重载了onShowFileChooser方法,低版本的android是重载另外一个方法(低版本好像是<=4.0,个人觉得版本太低,可能已经没有什么需求是要适应这种版本的手机了,如果你需要了解低版本,自行百度吧)
好,下面开始takePhoto这个函数的重点部分
/**
* 调用相机
*/
private void takePhoto() {
// 指定拍照存储位置的方式调起相机
String filePath = Environment.getExternalStorageDirectory() + File.separator