2 u013182821 u013182821 于 2016.05.11 15:38 提问

android webview file事件响应 选择图片过程中退出的话 按钮点不了
public void onActivityResult(int requestCode, int resultCode, Intent data) {
    if(requestCode==REQUEST_UPLOAD_FILE_CODE) {  
        if (null == mUploadFile) return;  
        Uri result = data == null || resultCode != -1 ? null  
                : data.getData();

// UriConvert(result);
mUploadFile.onReceiveValue(UriConvert(result));

mUploadFile = null;
}
else{
if (null == mUploadFile) return;
//显示到图库
File f = new File(imagePaths);
addImageGallery(f);
Uri result = cameraUri;
if(result!=null){
if(resultCode==-1){
mUploadFile.onReceiveValue(UriConvert(result));

mUploadFile = null;
}
}
}
}
//将低于4.4版本的URI转换为4.4以上版本能读的uri形式
public Uri UriConvert(Uri uri){
if (android.os.Build.VERSION.SDK_INT String filePath;
String[] projection = { MediaStore.Images.Media.DATA };
Cursor cursor = getActivity().getContentResolver().query(uri, projection, null, null, null);
int column_index = cursor.getColumnIndexOrThrow(MediaStore.Images.Media.DATA);
cursor.moveToFirst();
filePath = cursor.getString(column_index);
return Uri.fromFile(new File(filePath));
}else{
return uri;
}
}
moreWebView.setWebChromeClient(new WebChromeClient(){
// For Android 3.0+
public void openFileChooser(ValueCallback uploadMsg, String acceptType) {

if (mUploadFile != null) return;
mUploadFile = uploadMsg;
selectImage();
// Intent i = new Intent(Intent.ACTION_GET_CONTENT);
// i.addCategory(Intent.CATEGORY_OPENABLE);
// i.setType("*/*");
// startActivityForResult( Intent.createChooser( i, "File Chooser" ), MainActivity.REQUEST_UPLOAD_FILE_CODE );
}
// For Android < 3.0
public void openFileChooser(ValueCallback uploadMsg) {
openFileChooser( uploadMsg, "" );
}
// For Android > 4.1.1
public void openFileChooser(ValueCallback uploadMsg, String acceptType, String capture) {
openFileChooser(uploadMsg, acceptType);
}
});
//选择系统图库跟打开拍照
protected void selectImage() {
if (!checkSDcard())
return;
String[] selectPicTypeStr = { "拍照上传","图片或文件上传"};
new AlertDialog.Builder(getActivity())
.setItems(selectPicTypeStr,
new DialogInterface.OnClickListener() {
@Override
public void onClick(DialogInterface dialog,
int which) {
switch (which) {
// 相机拍摄
case 0:
openCarcme();
break;
//图库
case 1:
Intent i = new Intent(Intent.ACTION_GET_CONTENT);
i.addCategory(Intent.CATEGORY_OPENABLE);
i.setType("*/*");
if (android.os.Build.VERSION.SDK_INT >= android.os.Build.VERSION_CODES.KITKAT) {
startActivityForResult( Intent.createChooser( i, "File Chooser" ), REQUEST_UPLOAD_FILE_CODE );
} else {
startActivityForResult( Intent.createChooser( i, "File Chooser" ), REQUEST_UPLOAD_FILE_CODE_SMALL );
};
break;
default:
break;
}
}
}).show();
}

1个回答

silehaixianghuirenj
silehaixianghuirenj   2016.10.08 01:25

生成api还有其他的吗,除了草料
我想做一个名片二维码生成功能,图片说明
上面图片是草料二维码生成的,但是草料的api还要提交申请上面的太麻烦了,我想有没有其他的api来做这个类似的功能。在线等,315895718 QQ,最好赋个demo

Csdn user default icon
上传中...
上传图片
插入图片
准确详细的回答,更有利于被提问者采纳,从而获得C币。复制、灌水、广告等回答会被删除,是时候展现真正的技术了!
其他相关推荐
Android学习之实现WebView中input="file"选择文件,处理选择图片无法返回类型问题
// js上传文件的事件捕获 private ValueCallback mUploadMessage; private final int FILECHOOSER_RESULTCODE = 1; // 需要自己重写WebChromeClient类,并实现里面的三个方法。如下: private class MyWebChromeClient extends WebChromeClie
webView选择图片遇到的坑
1.兼容问题 2.上传至服务器后缀不正确 3.上传至服务器失败 4.去除webview默认提示框上的标题 最近项目需要用webView加载一个网页,之前此网页是在微信端加载的,现在放到我们的APP中。网页中有选择图片并上传的功能,但是碰到很多坑。 1.兼容问题 这个自行百度无非就是重写WebChromeClient里的几个方法 其中webCall不用管,是我的回调。然后重写Activ
webview支持H5中的选择图片方法
开发中有个需要,H5中有需要选择图片上传的功能,刚开始以为H5会自己搞定,查了资料才发现需要安卓原生做一些工作,代码如下: public class ModifyingPersonalActivity extends BaseTitleActivity { private WebView mWebView; private ValueCallback mUploadMess
webView文件上传取消弹窗后再次点击不响应点击事件问题
webView文件上传取消弹窗后再次点击不响应点击事件问题 在android加载h5界面时,如果该h5界面有调用android的手机相册或者相机功能,那么我们的activity里面应该怎么写呢?我的写法适配了android3.0到android7.0,如果安卓5.0以上的手机出现崩溃的问题,可以参考我下面For Android 5.0+的写法
android Webview 上传图片兼容各android版本
android 提供了支持网页的Webview控件,相当于一个小型的浏览器。当html网页中input type为“file”类型的form表单,并用户点击“选择文件”按钮时,Webview向客户端提供一个回调方法(安卓各版本不一致),用于让开发人员提供图片的Uri地址,并回传到网页。 整个过程比较明了,但是由于android的系统优化升级,高版本Webview,没有保留老版本图片上传的回调方法
android webview图片文件上传兼容性问题——上传控件点击无效的解决办法
android webview图片文件上传兼容性问题——上传控件点击无效的解决办法现象描述:在android的webview中,如果web页面中带有< input type=”file” …>的控件,在webview中虽然能正常显示这个上传控件,但是在部分手机上点击却没有任何反应。查找原因经过大量机型验证发现5.0以下的可以正常显示出来,5.0及以上的手机点击无反应。初步可以判定是Webview的兼
android WebView调用文件管理器,点击返回键退出app的解决办法
在清单文件中,给含有该WebView的activity设置属性: alwaysRetainTaskState属性 和 configChanges属性 这里,我的是WebActivity: <activity android:name=".activity.WebActivity" android:theme="@style/Theme.AppCompat.L
Webview打开本地图片文件选择解决方案
Webview打开本地图片选择器解决方案Webview打开本地图片选择器十分之麻烦,其在安卓系统3x 4x 5x上的行为都不同,处理也不同,所以之前差点崩溃。经过测试和完善,最终其在各个版本上都能完美工作,特此开源出来,希望能帮到大家 Webview FileChooser 返回键处理 Android3.0之前版本 Android3.x版本 Android4.x版本 Android5.x版本 代码块
Android 中 webview 无法弹出文件选择框,点击按钮没反应的问题
在以前做的项目里遇到一个奇葩问题,在ios和微信都可以,但是就是在android端不行,无论你多使劲点都发现无法弹出安卓原生文件选择界面,简直要崩溃了通过一番资料查询,发现要重写WebChromeClient类里面的方法  先说一下执行的步骤: 1.通过webview.setWebChromeClient(),传入一个WebChromeClient的实现类,在WebChromeClient实现类里...
Android使用WebView从相册/拍照中添加图片
解决这个问题花了很长时间搜索了解,网上大部分使用openFileChooser但都没解决一个存在的问题。就是当弹出选择图片/相机框之后,取消选择,就再也不能点击选择按钮了。这篇文章是为了记录这一点,为验证整个流程部署了后端,但是由于很久没接触后端,后端代码是网上的列子,所以后端代码和部署就不说了。单纯的说下Android端的解决方案。 自定义两个文件: /** * 自定义 * * @Au