Могу ли я открыть камеру в webview? - PullRequest
9 голосов
/ 27 апреля 2011

Могу ли я открыть Android-камеру в WebView?

Ответы [ 2 ]

8 голосов
/ 29 апреля 2011

Самый простой способ использовать функцию камеры при использовании Webview - это использовать Intent.

Если вы используете API, вам придется самостоятельно создавать большую часть пользовательского интерфейса. Это хорошо или плохо, в зависимости от того, что вам нужно делать в приложении и насколько вам нужно контролировать процесс фотосъемки. Если вам просто нужен быстрый способ сфотографировать фотографию и использовать ее в своем приложении, Intent - это то, что нужно.

Пример намерения:

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

1 голос
/ 27 апреля 2011

Насколько я знаю, это не встроено в Android API напрямую. Тем не менее, вы можете использовать PhoneGap , который предоставляет Javascript-хуки для собственных функций устройства (т. Е. Камеры).

Вы можете просмотреть список поддерживаемых функций здесь и прочитать их документацию по API камеры здесь .

...