Вопрос

Могу ли я открыть 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 камеры здесь.

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top