|
@@ -160,6 +160,7 @@ public class WebViewActivity extends AppCompatActivity {
|
|
|
public void onProgressChanged(WebView view, int newProgress) {
|
|
public void onProgressChanged(WebView view, int newProgress) {
|
|
|
//do you work
|
|
//do you work
|
|
|
}
|
|
}
|
|
|
|
|
+
|
|
|
// For Android < 3.0
|
|
// For Android < 3.0
|
|
|
public void openFileChooser(ValueCallback<Uri> valueCallback) {
|
|
public void openFileChooser(ValueCallback<Uri> valueCallback) {
|
|
|
uploadMessage = valueCallback;
|
|
uploadMessage = valueCallback;
|
|
@@ -189,19 +190,13 @@ public class WebViewActivity extends AppCompatActivity {
|
|
|
|
|
|
|
|
// 2.回调方法触发本地选择文件
|
|
// 2.回调方法触发本地选择文件
|
|
|
private void openImageChooserActivity() {
|
|
private void openImageChooserActivity() {
|
|
|
- //调用系统相机
|
|
|
|
|
- Intent intentCamera = new Intent();
|
|
|
|
|
- if (Build.VERSION.SDK_INT >= 24) {
|
|
|
|
|
- intentCamera.addFlags(Intent.FLAG_GRANT_READ_URI_PERMISSION); //添加这一句表示对目标应用临时授权该Uri所代表的文件
|
|
|
|
|
- }
|
|
|
|
|
- intentCamera.setAction(MediaStore.ACTION_IMAGE_CAPTURE);
|
|
|
|
|
- startActivityForResult(intentCamera, FILE_CHOOSER_RESULT_CODE);
|
|
|
|
|
|
|
+ checkPermissionAndCamera();
|
|
|
|
|
|
|
|
// Intent i = new Intent(Intent.ACTION_GET_CONTENT);
|
|
// Intent i = new Intent(Intent.ACTION_GET_CONTENT);
|
|
|
// i.addCategory(Intent.CATEGORY_OPENABLE);
|
|
// i.addCategory(Intent.CATEGORY_OPENABLE);
|
|
|
// i.setType("image/*");//图片上传
|
|
// i.setType("image/*");//图片上传
|
|
|
-//// i.setType("file/*");//文件上传
|
|
|
|
|
-//// i.setType("*/*");//文件上传
|
|
|
|
|
|
|
+// i.setType("file/*");//文件上传
|
|
|
|
|
+// i.setType("*/*");//文件上传
|
|
|
// startActivityForResult(Intent.createChooser(i, "File Chooser"), FILE_CHOOSER_RESULT_CODE);
|
|
// startActivityForResult(Intent.createChooser(i, "File Chooser"), FILE_CHOOSER_RESULT_CODE);
|
|
|
}
|
|
}
|
|
|
|
|
|
|
@@ -223,40 +218,33 @@ public class WebViewActivity extends AppCompatActivity {
|
|
|
|
|
|
|
|
}
|
|
}
|
|
|
|
|
|
|
|
-// @Override
|
|
|
|
|
-// protected void onActivityResult(int requestCode, int resultCode, @Nullable Intent data) {
|
|
|
|
|
-// super.onActivityResult(requestCode, resultCode, data);
|
|
|
|
|
-// /**
|
|
|
|
|
-// * 处理二维码扫描结果
|
|
|
|
|
-// */
|
|
|
|
|
-// if (resultCode == RESULT_OK) {
|
|
|
|
|
-// switch (requestCode) {
|
|
|
|
|
-// case 200:
|
|
|
|
|
-// Bundle bundle = data.getExtras();
|
|
|
|
|
-// String scanResult = bundle.getString(Constant.INTENT_EXTRA_KEY_QR_SCAN);
|
|
|
|
|
-//// String result = CameraScan.parseScanResult(data);
|
|
|
|
|
-// mAgentWeb.getJsAccessEntrace().quickCallJs("QRCode", scanResult);
|
|
|
|
|
-// break;
|
|
|
|
|
-// case CAMERA_REQUEST_CODE:
|
|
|
|
|
-// String uploadpath = Uri2PathUtil.getRealPathFromUri(this, mCameraUri);
|
|
|
|
|
-// mAgentWeb.getJsAccessEntrace().quickCallJs("Camera", uploadpath);
|
|
|
|
|
-// break;
|
|
|
|
|
-// }
|
|
|
|
|
-// }
|
|
|
|
|
-// }
|
|
|
|
|
- // 3.选择图片后处理
|
|
|
|
|
@Override
|
|
@Override
|
|
|
- protected void onActivityResult(int requestCode, int resultCode, Intent data) {
|
|
|
|
|
|
|
+ protected void onActivityResult(int requestCode, int resultCode, @Nullable Intent data) {
|
|
|
super.onActivityResult(requestCode, resultCode, data);
|
|
super.onActivityResult(requestCode, resultCode, data);
|
|
|
- if (requestCode == FILE_CHOOSER_RESULT_CODE) {
|
|
|
|
|
- if (null == uploadMessage && null == uploadMessageAboveL) return;
|
|
|
|
|
- Uri result = data == null || resultCode != RESULT_OK ? null : data.getData();
|
|
|
|
|
- // Uri result = (((data == null) || (resultCode != RESULT_OK)) ? null : data.getData());
|
|
|
|
|
- if (uploadMessageAboveL != null) {
|
|
|
|
|
- onActivityResultAboveL(requestCode, resultCode, data);
|
|
|
|
|
- } else if (uploadMessage != null) {
|
|
|
|
|
- uploadMessage.onReceiveValue(result);
|
|
|
|
|
- uploadMessage = null;
|
|
|
|
|
|
|
+ /**
|
|
|
|
|
+ * 处理二维码扫描结果
|
|
|
|
|
+ */
|
|
|
|
|
+ if (resultCode == RESULT_OK) {
|
|
|
|
|
+ switch (requestCode) {
|
|
|
|
|
+ case 200:
|
|
|
|
|
+ Bundle bundle = data.getExtras();
|
|
|
|
|
+ String scanResult = bundle.getString(Constant.INTENT_EXTRA_KEY_QR_SCAN);
|
|
|
|
|
+// String result = CameraScan.parseScanResult(data);
|
|
|
|
|
+ mAgentWeb.getJsAccessEntrace().quickCallJs("QRCode", scanResult);
|
|
|
|
|
+ break;
|
|
|
|
|
+ case CAMERA_REQUEST_CODE:
|
|
|
|
|
+ if (uploadMessageAboveL != null) {
|
|
|
|
|
+ Uri[] results = new Uri[]{mCameraUri};
|
|
|
|
|
+ uploadMessageAboveL.onReceiveValue(results);
|
|
|
|
|
+ uploadMessageAboveL = null;
|
|
|
|
|
+// onActivityResultAboveL(requestCode, resultCode, data);
|
|
|
|
|
+ } else if (uploadMessage != null) {
|
|
|
|
|
+ uploadMessage.onReceiveValue(mCameraUri);
|
|
|
|
|
+ uploadMessage = null;
|
|
|
|
|
+ }
|
|
|
|
|
+// String uploadpath = Uri2PathUtil.getRealPathFromUri(this, mCameraUri);
|
|
|
|
|
+// mAgentWeb.getJsAccessEntrace().quickCallJs("Camera", uploadpath);
|
|
|
|
|
+ break;
|
|
|
}
|
|
}
|
|
|
} else {
|
|
} else {
|
|
|
//这里uploadMessage跟uploadMessageAboveL在不同系统版本下分别持有了
|
|
//这里uploadMessage跟uploadMessageAboveL在不同系统版本下分别持有了
|
|
@@ -271,6 +259,34 @@ public class WebViewActivity extends AppCompatActivity {
|
|
|
}
|
|
}
|
|
|
}
|
|
}
|
|
|
}
|
|
}
|
|
|
|
|
+//
|
|
|
|
|
+// // // 3.选择图片后处理
|
|
|
|
|
+// @Override
|
|
|
|
|
+// protected void onActivityResult(int requestCode, int resultCode, Intent data) {
|
|
|
|
|
+// super.onActivityResult(requestCode, resultCode, data);
|
|
|
|
|
+// if (requestCode == FILE_CHOOSER_RESULT_CODE) {
|
|
|
|
|
+// if (null == uploadMessage && null == uploadMessageAboveL) return;
|
|
|
|
|
+// Uri result = data == null || resultCode != RESULT_OK ? null : data.getData();
|
|
|
|
|
+// // Uri result = (((data == null) || (resultCode != RESULT_OK)) ? null : data.getData());
|
|
|
|
|
+// if (uploadMessageAboveL != null) {
|
|
|
|
|
+// onActivityResultAboveL(requestCode, resultCode, data);
|
|
|
|
|
+// } else if (uploadMessage != null) {
|
|
|
|
|
+// uploadMessage.onReceiveValue(result);
|
|
|
|
|
+// uploadMessage = null;
|
|
|
|
|
+// }
|
|
|
|
|
+// } else {
|
|
|
|
|
+// //这里uploadMessage跟uploadMessageAboveL在不同系统版本下分别持有了
|
|
|
|
|
+// //WebView对象,在用户取消文件选择器的情况下,需给onReceiveValue传null返回值
|
|
|
|
|
+// //否则WebView在未收到返回值的情况下,无法进行任何操作,文件选择器会失效
|
|
|
|
|
+// if (uploadMessage != null) {
|
|
|
|
|
+// uploadMessage.onReceiveValue(null);
|
|
|
|
|
+// uploadMessage = null;
|
|
|
|
|
+// } else if (uploadMessageAboveL != null) {
|
|
|
|
|
+// uploadMessageAboveL.onReceiveValue(null);
|
|
|
|
|
+// uploadMessageAboveL = null;
|
|
|
|
|
+// }
|
|
|
|
|
+// }
|
|
|
|
|
+// }
|
|
|
|
|
|
|
|
// 4. 选择内容回调到Html页面
|
|
// 4. 选择内容回调到Html页面
|
|
|
@TargetApi(Build.VERSION_CODES.LOLLIPOP)
|
|
@TargetApi(Build.VERSION_CODES.LOLLIPOP)
|
|
@@ -303,7 +319,7 @@ public class WebViewActivity extends AppCompatActivity {
|
|
|
mAgentWeb.getJsAccessEntrace().quickCallJs("StartService", "1");
|
|
mAgentWeb.getJsAccessEntrace().quickCallJs("StartService", "1");
|
|
|
} else if (eventData.getCode() == 2) {
|
|
} else if (eventData.getCode() == 2) {
|
|
|
mAgentWeb.getJsAccessEntrace().quickCallJs("StartService", "2");
|
|
mAgentWeb.getJsAccessEntrace().quickCallJs("StartService", "2");
|
|
|
- }else if(eventData.getCode() == 3){
|
|
|
|
|
|
|
+ } else if (eventData.getCode() == 3) {
|
|
|
checkPermissionAndCamera();
|
|
checkPermissionAndCamera();
|
|
|
}
|
|
}
|
|
|
}
|
|
}
|
|
@@ -442,6 +458,7 @@ public class WebViewActivity extends AppCompatActivity {
|
|
|
}
|
|
}
|
|
|
return tempFile;
|
|
return tempFile;
|
|
|
}
|
|
}
|
|
|
|
|
+
|
|
|
/**
|
|
/**
|
|
|
* 文件转base64字符串
|
|
* 文件转base64字符串
|
|
|
*
|
|
*
|
|
@@ -474,6 +491,7 @@ public class WebViewActivity extends AppCompatActivity {
|
|
|
}
|
|
}
|
|
|
return base64;
|
|
return base64;
|
|
|
}
|
|
}
|
|
|
|
|
+
|
|
|
@Override
|
|
@Override
|
|
|
protected void onResume() {
|
|
protected void onResume() {
|
|
|
mAgentWeb.getWebLifeCycle().onResume();
|
|
mAgentWeb.getWebLifeCycle().onResume();
|