Cordova/Phonegap Inappbrowser/IFrame не может открыть камеру на Android

Запуск Cordova/Phonegap 6.4.0, Android 5.0, протестированный с Inappbrowser и Iframe, оба не открывают камеру, а просто открывают окно выбора собственного файла. Но мне нужно открыть камеру.

<input type="file" name="fileToUpload" id="fileToUpload" accept="image/*" capture="camera">

person Benyaman    schedule 21.04.2017    source источник


Ответы (1)


Изменить:

У меня была эта проблема раньше. На одних устройствах работает, на других нет. Кажется, что некоторые устройства используют разные веб-представления, которые могут полностью или не полностью поддерживать ввод камеры в HTML, или они ожидают другого синтаксиса.

По этой причине я рекомендую использовать плагин камеры. Так как это обеспечивает стабильный результат на всех устройствах.

Файловый плагин Кордовы:

https://cordova.apache.org/docs/en/latest/reference/cordova-plugin-file/

Вместе с плагином Cordova File Transfer:

https://cordova.apache.org/docs/en/latest/reference/cordova-plugin-file-transfer/

Если вы просто хотите выбрать изображения или картинки, вы можете использовать плагин Cordova Camera Plugin.

https://cordova.apache.org/docs/en/latest/reference/cordova-plugin-camera/

Используя это, вы можете позволить пользователям выбирать изображение со своей камеры.

Установите плагин камеры:

cordova plugin add cordova-plugin-camera

Пример JS-кода плагина камеры:

var cameraOptions = {

    destinationType: Camera.DestinationType.DATA_URL,
    sourceType: Camera.PictureSourceType.CAMERA
}

function cameraSuccess(data){

    console.log(data);

    var img = document.getElementById("yourImg");

    img.src = data;

}

function cameraError(error){

    console.log(error);

}

navigator.camera.getPicture(cameraSuccess, cameraError, cameraOptions);

Пример HTML:

<div><img id="yourImg" src=""/><div>

Исходный

Попробуйте использовать эту строку:

<input type="file" accept="image/*;capture=camera">

Обратите внимание, что я включил атрибут захвата в атрибут accept.

person L Balsdon    schedule 21.04.2017
comment
Привет, ааа спасибо ок! Ер я думал, что я делаю что-то не так. - person Benyaman; 29.04.2017
comment
Большой. Если это сработало, вы можете принять ответ, чтобы другие знали. Ваше здоровье. - person L Balsdon; 29.04.2017
comment
К сожалению, я не думаю, что это общее решение, а скорее обходной путь для конкретного случая. Захват фотографии со сторонней страницы внутри InAppBrowser по-прежнему невозможен. Предлагаемый обходной путь включает в себя Cordova и код, которым владею я, а не сторонний. - person Stan; 07.09.2017