Итак, чтобы вернуться к вашему webView
при захвате изображения с камеры, измените ваш onActivityResult
метод на этот
protected void onActivityResult(int requestCode, int resultCode, Intent data) {
if (requestCode == CAMERA_REQUEST && resultCode == Activity.RESULT_OK) {
photo = (Bitmap) data.getExtras().get("data");
if (webView != null)
webView.loadUrl("http://125.16.74.160:30019");
}
}
Также вы должны объявить вас bitmap
как глобальную статическую переменнуюкак это
общедоступная статическая растровая фотография;
Затем bitMapToBase64
становится таким
@JavascriptInterface
public String bitMapToBase64()
{
if (MainActivity.photo != null) {
ByteArrayOutputStream byteArrayOutputStream = new ByteArrayOutputStream();
//add support for jpg and more.
MainActivity.photo.compress(Bitmap.CompressFormat.PNG, 50, byteArrayOutputStream);
byte[] byteArray = byteArrayOutputStream .toByteArray();
String encoded = Base64.encodeToString(byteArray, Base64.DEFAULT);
return encoded;
}
return "null image";
}
На стороне javascript вы проверяете, имеет ли функция bitMapToBase64 возвращаемое значение, отличное от"null image" вы конвертируете изображение base64 в объект blob или image и показывает его, например, в div.
Вот пример того, как преобразовать строку base64 в объект изображения и добавить его в ваше тело
var image = new Image();
image.src = 'data:image/png;base64,iVBORw0K...';
document.body.appendChild(image);