Могу ли я открыть камеру в WebView?
-
24-10-2019 - |
Вопрос
Могу ли я открыть Android Camera в WebView?
Решение
Самый простой способ иметь функциональность камеры при использовании WebView - это использовать намерение.
Если вы используете API, вы должны построить много пользовательского интерфейса самостоятельно. Это хорошо или плохо в зависимости от того, что вам нужно сделать в своем приложении и сколько контроля вам нужно из -за «процесса поиска картины». Если вам просто нужен быстрый способ сфотографироваться и использовать его в своем приложении, намерение - это путь.
Пример намерения:
private Uri picUri;
private void picture()
{
Intent cameraIntent = new Intent("android.media.action.IMAGE_CAPTURE");
File photo = new File(Environment.getExternalStorageDirectory(), "pic.jpg");
cameraIntent.putExtra(MediaStore.EXTRA_OUTPUT, Uri.fromFile(photo));
picUri = Uri.fromFile(photo);
startActivityForResult(cameraIntent, TAKE_PICTURE);
}
public void onActivityResult(int requestCode, int resultCode, Intent data)
{
super.onActivityResult(requestCode, resultCode, data);
switch(requestCode){
case TAKE_PICTURE:
if(resultCode == Activity.RESULT_OK){
Uri mypic = picUri;
//Do something with the image.
}
}
Я одолжил части этого примера из другого ответа, чтобы построить это изначально. Но у меня больше нет URL.
В приложении, которое я сейчас пишу, я преобразую это изображение в Base64, а затем передаю его в JavaScript, который затем публикует его на мой сервер. Но это, вероятно, больше, чем вам нужно было знать. :)
здесь Ссылка, чтобы заставить его работать на WebView
Другие советы
Насколько я знаю, это не встроено в API Android напрямую. Однако вы можете использовать Телефон, который предоставляет JavaScript крючки в функциональность нативного устройства (т.е. камера).
Вы можете просмотреть список поддерживаемых функций здесь, и прочитайте их документацию по API камеры здесь.