webview与js交互(图片的上传)

chenqi1104 2016-03-28 11:52:08
public class BNJSImpl {

/**
* 选择需要上传的文件
* @param folderName
* 文件上传到服务器上指定存放的文件夹
* @param isTime
* 文件上传到服务器上是否按系统时间命名。不传或传空表示不按系统时间命名,同时就需要传递fileName参数
* @param paramter
* 按照系统时间命名的前缀,需要时就传递,可不传
* @param fileName
* 文件名,含格式
* @param isBatchFile
* 是否批量上传文件,不传则默认是单文件上传
* @param sum
* 文件数量限制。isBatchFile为true时才启用此参数
*/
@JavascriptInterface
public void selectFile(String folderName, String isTime, String paramter,
String fileName, boolean isBatchFile, int sum) {
if (!checkSDcard())
return;
BNAPPWebViewActivity.filePath = "";
final Intent intent = new Intent();
if (null != folderName && !"".equals(folderName))
intent.putExtra("folderName", folderName);
if (null != isTime && !"".equals(isTime))
intent.putExtra("isTime", isTime);
if (null != paramter && !"".equals(paramter))
intent.putExtra("paramter", paramter);
if (null != fileName && !"".equals(fileName))
intent.putExtra("fileName", fileName);
intent.putExtra("isBatchFile", isBatchFile);
intent.putExtra("sum", sum);
// intent.setClass(cxt, FileUploadCheckView.class);
// ((Activity) cxt).startActivityForResult(intent, 20147);

final String items[] = { "相机", "照片", "文件" };
// dialog参数设置
AlertDialog.Builder builder = new AlertDialog.Builder(cxt); // 先得到构造器
builder.setTitle("请选择"); // 设置标题
// builder.setMessage("是否确认退出?"); //设置内容
// builder.setIcon(R.mipmap.ic_launcher);//设置图标,图片id即可
// 设置列表显示,注意设置了列表显示就不要设置builder.setMessage()了,否则列表不起作用。
builder.setItems(items, new DialogInterface.OnClickListener() {
@Override
public void onClick(DialogInterface dialog, int which) {// dialog.dismiss();
if (items[which].equals("照片")) {// REQ_CHOOSE=3
((Activity) cxt).startActivityForResult(intent, REQ_CHOOSE);
} else if (items[which].equals("相机")) {// REQ_CAMERA=2
((Activity) cxt).startActivityForResult(intent, REQ_CAMERA);
} else if (items[which].equals("文件")) {
intent.setClass(cxt, FileUploadCheckView.class);
((Activity) cxt).startActivityForResult(intent, 20147);
}
}
});
builder.create().show();
}
}




@SuppressLint({ "JavascriptInterface", "HandlerLeak" })
public class BNAPPWebViewActivity extends BestnetActivity implements
OnUploadProcessListener, DownloadListener {
@SuppressLint("SimpleDateFormat")
@Override
protected void onActivityResult(int requestCode, int resultCode, Intent data) {
BNLog.e("选择文件的返回", requestCode + "");

String folderName = "";// 文件上传参数
String isTime = "";// 文件上传参数
String paramter = "";// 文件上传参数
String fileName = "";// 文件上传参数

if (requestCode == 2) {// 打开相机

Intent intentCarcme = new Intent(MediaStore.ACTION_IMAGE_CAPTURE);
carcmePath = Environment.getExternalStorageDirectory().getPath()
+ "/fuiou_wmp/temp/";
imagePaths = carcmePath + (System.currentTimeMillis() + ".jpg");
path = imagePaths;
SimpleDateFormat dateFormat = new SimpleDateFormat(
"yyyy-MM-dd hh:mm:ss");
time = dateFormat.format(new java.util.Date());
Log.e("---imagePaths---", imagePaths);
// 必须确保文件夹路径存在,否则拍照后无法完成回调
File vFile = new File(imagePaths);
if (!vFile.exists()) {
File vDirPath = vFile.getParentFile();
vDirPath.mkdirs();
} else {
if (vFile.exists()) {
vFile.delete();
}
}
}
BNAPPWebViewActivity.this.startActivityForResult(intentCarcme,
20148);

//data 值为null,下面的参数得不到值
if (requestCode == 20148) {// 相机拍照上传
if (data.hasExtra("folderName")) {
folderName = data.getStringExtra("folderName");
}
if (data.hasExtra("isTime")) {
isTime = data.getStringExtra("isTime");
}
if (data.hasExtra("paramter")) {
paramter = data.getStringExtra("paramter");
}
if (data.hasExtra("fileName")) {
fileName = data.getStringExtra("fileName");
}
Log.e("folderName====", folderName);
Log.e("isTime====", isTime);
Log.e("paramter====", paramter);
Log.e("fileName====", fileName);
}

}

如何将selectFile中的4个上传参数传到onactivityresult中???
...全文
185 回复 打赏 收藏 举报
写回复
用AI写文章
回复
切换为时间正序
请发表友善的回复…
发表回复

80,490

社区成员

发帖
与我相关
我的任务
社区描述
移动平台 Android
androidandroid-studioandroidx 技术论坛(原bbs)
社区管理员
  • Android
  • yechaoa
  • 失落夏天
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧