1 В избранное 0 Ответвления 0

OSCHINA-MIRROR/wingsfrog-wfPluginCamera

Присоединиться к Gitlife
Откройте для себя и примите участие в публичных проектах с открытым исходным кодом с участием более 10 миллионов разработчиков. Приватные репозитории также полностью бесплатны :)
Присоединиться бесплатно
Клонировать/Скачать
Внести вклад в разработку кода
Синхронизировать код
Отмена
Подсказка: Поскольку Git не поддерживает пустые директории, создание директории приведёт к созданию пустого файла .keep.
Loading...
README.md

Статус сборки

cordova-plugin-camera

Этот плагин определяет глобальный объект navigator.camera, который предоставляет API для съёмки фотографий и выбора изображений из системной библиотеки изображений.

Хотя объект прикреплен к глобальной области navigator, он становится доступным только после события deviceready.

document.addEventListener("deviceready", onDeviceReady, false);
function onDeviceReady() {
    console.log(navigator.camera);
}
```## Установка

Для установки требуется Cordova 5.0+.

```bash
cordova plugin add cordova-plugin-camera

Для старых версий Cordova можно установить через устаревший ID.

cordova plugin add org.apache.cordova.camera

Также возможно установить непосредственно через URL репозитория (неустойчивый).

cordova plugin add https://github.com/apache/cordova-plugin-camera.git

Как принять участие

Приветствуем всех желающих принять участие! Мы нуждаемся в ваших вкладах, чтобы двигаться дальше. Вы можете сообщить об ошибках, улучшить документацию или внести изменения в код. Существует конкретный workflow для вкладчиков, который мы рекомендуем. Начните чтение оттуда. Дополнительная информация доступна на нашей вики.

:warning: Найдена проблема? Отправьте её на трекер задач JIRA.

Имеете решение? Отправьте pull request.Чтобы ваши изменения были приняты, вам нужно подписать и отправить ICLA (индивидуальному соглашению о правах использования для вкладчиков). После этого ваше имя будет указано в списке поданных ICLA не-членами команды или членами команды Cordova.Не забудьте протестировать и документировать свой код.


Это документация, сгенерированная средством

:warning: Выполните npm install в репозитории плагина, чтобы включить автоматическое генерирование документации, если вы планируете отправить pull request.
Jsdoc-to-markdown используется для генерации документов.
Документация состоит из шаблонной и API-документации, созданной из кода плагина JavaScript и должна быть регенерирована перед каждым коммитом (делается автоматически через husky, запуская скрипт npm run gen-docs как хук precommit — см. детали в package.json).


Справочник API

Камера

камера.getPicture(функцияУспеха, функцияОшибки, опции)

Захватывает фотографию с помощью камеры или получает её изображение из галереи устройств. Изображение передается в функцию успеха как базированная на Base64 строка или как URI файла изображения.

Функция камера.getPicture открывает стандартное приложение камеры устройства, которое позволяет пользователям делать снимки по умолчанию — это поведение происходит, когда Camera.sourceType равно Camera.PictureSourceType.CAMERA.

После того как пользователь сделает фото, приложение камеры закрывается, а приложение восстанавливается.

Если Camera.sourceType равен Camera.PictureSourceType.PHOTOLIBRARY или Camera.PictureSourceType.SAVEDPHOTOALBUM, то отображается диалог, который позволяет пользователям выбрать существующее изображение. Функция камера.getPicture возвращает объект типа CameraPopoverHandle, который можно использовать для перестроения диалогового окна выбора изображения, например, когда меняется ориентация устройства.

Результат отправляется в функцию обратного вызова камера.успех одним из следующих форматов в зависимости от указанных камера.опции:

  • Строка, содержащая базированное на Base64 изображение.

  • Строка, представляющая местоположение файла изображения на локальном хранилище (по умолчанию).Вы можете сделать всё что вам нужно со строкой кодировки изображения или URI, например:

  • Отобразите изображение в теге <img>, как показано ниже

  • Сохраните данные локально (LocalStorage, Lawnchair, и т.д.)

  • Отправьте данные на удалённый сервер

Примечание: Разрешение фотографий на новых устройствах очень высокое. Изображения, выбранные из галереи устройства, не уменьшаются до более низкого качества даже если указан параметр качество. Чтобы избежать общих проблем памяти, установите Camera.destinationType на значение FILE_URI вместо DATA_URL.

Поддерживаемые платформы

  • Android
  • BlackBerry
  • Браузер
  • Firefox
  • FireOS
  • iOS
  • Windows
  • WP8
  • Ubuntu

Больше примеров здесь. Ошибки здесь.

Тип: статический метод в камера

Параметр Тип Описание
successCallback onSuccess
errorCallback onError
options КамераOptions КамераOptions

Пример

navigator.camera.getPicture(камераSuccess, камераError, камераOptions);

камера.cleanup()

Удаляет промежуточные файлы изображений, хранящиеся в временной папке после вызова метода камера.getPicture. Применимо только когда значение параметра Camera.sourceType равно Camera.PictureSourceType.CAMERA, а параметр Camera.destinationType равен Camera.DestinationType.FILE_URI.Поддерживаемые платформы

  • iOS

Тип: статический метод в камера

Пример

navigator.camera.cleanup(onSuccess, onFail);

function onSuccess() {
    console.log("Удаление временных файлов камеры завершено успешно.");
}

function onFail(message) { 
    alert('Ошибка удаления временных файлов камеры: ' + message); 
}

камера.onError : функция

Функция обратного вызова, которая предоставляет сообщение об ошибке.

Тип: статическая типизация в камера

Параметр Тип Описание
message строка Сообщение предоставляется нативным кодом устройства.

камера.onSuccess : функция

Функция обратного вызова, которая предоставляет данные изображения.

Тип: статическая типизация в камера

Параметр Тип Описание
imageData строка Базовая шестнадцатеричная закодированная информация об изображении, или URI файла изображения, в зависимости от действующих параметров камераOptions.

Пример

// Отображение изображения
//
function cameraCallback(imageData) {
   var image = document.getElementById('myImage');
   image.src = "data:image/jpeg;base64," + imageData;
}

камера.КамераOptions : Объект

Необязательные параметры для настройки параметров камеры.

  • QuirksТип: статическая типизация в камера
    Свойства| Название | Тип | По умолчанию | Описание | | --- | --- | --- | --- | | качество | число | 50 | Качество сохраняемого изображения, выраженное в диапазоне от 0 до 100, где Yöntem 100 обычно соответствует полному разрешению камеры с минимальной потерей качества из-за сжатия файла. (Обратите внимание, что информация о разрешении камеры недоступна.) | | типЦелевогоУказателя | [ТипЦелевогоУказателя](#module_Camera. ТипЦелевогоУказателя) | FILE_URI | Выберите формат возвращаемого значения. | | источникИзображения | [ТипИсточникаКартинки](#module_Camera. ТипИсточникаКартинки) | КАМЕРА | Установите источник изображения. | | разрешениеРедактирования | Логическое | истина | Разрешите простое редактирование изображения перед выбором. | | типШифрования | [ТипШифрования](#module_Camera. ТипШифрования) | JPEG | Выберите тип шифрования возвращаемого изображения. | | целевойШирина | число | | Ширина в пикселях для масштабирования изображения. Должна использоваться вместе с целевойВысотой. Соотношение сторон остаётся постоянным. | | целевойВысота | число | | Высота в пикселях для масштабирования изображения. Должна использоваться вместе с целевойШириной. Соотношение сторон остаётся постоянным. | | типСредства | ТипСредства | ПОДХОДЯЩАЯ_ФОТОГРАФИЯ | Установите тип медиа для выбора. Только работает при ТипИсточникаКартинки равном БИБЛИОТЕКА_ФОТОГРАФИЙ или СПИСОК_СОХРАНЕННЫХ_ФОТОГРАФИЙ. |

| коррекцияОриентации | Логическое | | Вращайте изображение для компенсации ориентации устройства во время захвата. | | сохранениеВФотоальбом | Логическое | | Сохраните изображение в фотоальбом устройства после захвата. | | опцииПодпопапа | ОпцииПодпопапа | | iOS-специфические опции, указывающие местоположение подпопапа на iPad. | | направлениеКамеры | Направление Yöntem | ЗАДНИЙ | Выберите камеру для использования (фронтальная или задняя). |---

Камера

Камера.ТипЦелевогоУказателя : перечисление

Тип: статическое перечисление свойства Камера
Элементы перечисления:| Название | Тип | По умолчанию | Описание | | --- | --- | --- | --- | | DATA_URL | number | 0 | Возвращает закодированную в Base64 строку. DATA_URL может быть очень затратной по памяти и вызвать аварийное завершение работы приложения или ошибки "out of memory". При возможности используйте FILE_URI или NATIVE_URI | | FILE_URI | number | 1 | Возвращает URI файла (например, content://media/external/images/media/2 для Android) | | NATIVE_URI | number | 2 | Возвращает нативный URI (например, asset-library://... для iOS) |

Камера.EncodingType : перечисление

Тип: статическое перечисление свойства Камера
Свойства

Название Тип По умолчанию Описание
JPEG number 0 Возвращает закодированное в JPEG изображение
PNG number 1 Возвращает закодированное в PNG изображение

Камера.MediaType : перечисление

Тип: статическое перечисление свойства Камера
Свойства| Название | Тип | По умолчанию | Описание | | --- | --- | --- | --- | | PICTURE | number | 0 | Разрешает выбор только статических фотографий. ЗНАЧЕНИЕ ПО УМОЛЧАНИЮ. Будет возвращаться формат, указанный через DestinationType | | VIDEO | number | 1 | Разрешает выбор видео только, ВОЗВРАЩАЕТСЯ ТОЛЬКО URL | | ALLMEDIA | number | 2 | Разрешает выбор из всех типов медиа |

Перевод:

Название Тип По умолчанию Описание
PICTURE number 0 Разрешает выбор только статических фотографий. Значение по умолчанию. Будет возвращаться формат, указанный через DestinationType
VIDEO number 1 Разрешает выбор видео только, Возвращает только URL
ALLMEDIA number 2 Разрешает выбор из всех типов медиа

Camera.PictureSourceType : enum

Тип: статическое перечисление свойства Camera
Свойства

Название Тип По умолчанию Описание
PHOTOLIBRARY number 0 Выбор изображения из библиотеки фотографий (такое же значение как SAVEDPHOTOALBUM для Android)
CAMERA number 1 Сфотографировать с камеры
SAVEDPHOTOALBUM number 2 Выбор изображения из библиотеки сохранённых фотографий (такое же значение как PHOTOLIBRARY для Android)

Camera.PopoverArrowDirection : enum

Соответствует константам UIPopoverArrowDirection из iOS для указания местоположения стрелки на попапе.

Тип: статическое перечисление свойства Camera
Свойства

Название Тип По умолчанию
ARROW_UP number 1
ARROW_DOWN number 2
ARROW_LEFT number 4
ARROW_RIGHT number 8
ARROW_ANY number 15

Camera.Direction : enum

Тип: статическое перечисление свойства Camera
Свойства

Название Тип По умолчанию Описание
BACK number 0 Используйте заднюю камеру
FRONT number 1 Используйте переднюю камеру

---

CameraPopoverOptions

Параметры, доступные только для iOS, которые указывают местоположение элемента-контейнера и направление стрелки всплывающего окна при выборе изображений из библиотеки или альбома iPad.
Обратите внимание, что размер всплывающего окна может изменяться для корректировки направления стрелки и ориентации экрана. Убедитесь, что учтены изменения ориентации при указании местоположения элемента-контейнера.| Параметр | Тип | По умолчанию | Описание | | --- | --- | --- | --- | | [x] | Number | 0 | X-координата пикселей элемента экрана, на который будет закреплено всплывающее окно. | | [y] | Number | 32 | Y-координата пикселей элемента экрана, на который будет закреплено всплывающее окно. | | [ширина] | Number | 320 | Ширина, в пикселях, элемента экрана, на который будет закреплено всплывающее окно. | | [высота] | Number | 480 | Высота, в пикселях, элемента экрана, на который будет закреплено всплывающее окно. | | [arrowDir] | PopoverArrowDirection | ARROW_ANY | Направление стрелки всплывающего окна. |


CameraPopoverHandle

Объект-обрабатчик для всплывающего окна изображения.

Поддерживаемые платформы

  • iOS

Пример

var cameraPopoverHandle = navigator.camera.getPicture(onSuccess, onFail,
{
    destinationType: Camera.DestinationType.FILE_URI,
    sourceType: Camera.PictureSourceType.PHOTOLIBRARY,
    popoverOptions: new CameraPopoverOptions(300, 300, 100, 100, Camera.PopoverArrowDirection.ARROW_ANY)
});

// Перезакрепляем всплывающее окно при смене ориентации.
window.onorientationchange = function() {
    var cameraPopoverOptions = new CameraPopoverOptions(0, 0, 100, 100, Camera.PopoverArrowDirection.ARROW_ANY);
    cameraPopoverHandle.setPosition(cameraPopoverOptions);
}

camera.getPicture Примечание

Пример

Сделайте фотографию и получите расположение файла изображения:

Получение фотографии и её получения в виде Base64-кодированного изображения:
``````javascript
/**
 * Предупреждение: использование DATA_URL не рекомендовано! Целевой тип данных
 * очень требователен к памяти, даже при низком качестве. Его использование может
 * привести к ошибкам недостатка памяти и аварийному завершению работы приложения.
 * Вместо этого используйте FILE_URI или NATIVE_URI.
 */
navigator.camera.getPicture(onSuccess, onFail, { quality: 25,
    destinationType: Camera.DestinationType.DATA_URL
});

function onSuccess(imageData) {
    var image = document.getElementById('myImage');
    image.src = "data:image/jpeg;base64," + imageData;
}

function onFail(message) {
    alert('Не удалось из-за: ' + message);
}

Настройки (iOS)

  • CameraUsesGeolocation (логический, значение по умолчанию — false). Для захвата JPEG установите значение в true для получения данных геолокации в заголовке EXIF. Это вызовет запрос на разрешение использования геолокации, если установлено значение true.
<preference name="CameraUsesGeolocation" value="false" />

Уникальные особенности Amazon Fire OS

Amazon Fire OS использует намерения для запуска активности камеры на устройстве для захвата изображений. На устройствах с малым объемом оперативной памяти активность Cordova может быть завершена. В этом случае изображение может не отобразиться при восстановлении активности Cordova.

Уникальные особенности AndroidAndroid использует намерения для запуска активности камеры на устройстве для захвата изображений. На телефонах с небольшим объёмом оперативной памяти активность Cordova может быть завершена. В этом случае результат вызова плагина будет передан через событие resume. Дополнительная информация доступна в руководстве по жизненному циклу Android. Значение pendingResult.result будет содержать значение, которое было бы передано обратно в коллбэках (либо URI/URL, либо сообщение об ошибке). Проверьте pendingResult.pluginStatus, чтобы определить успех вызова.### Уникальные особенности браузера

Может вернуть только фотографии в виде Base64-кодированного изображения.


Плагин камеры реализован с помощью [Web Activities][web_activities].

#### Квирк iOS

Включение JavaScript `alert()` в одном из обратных вызовов может вызвать проблемы. Оберните `alert` внутри `setTimeout()`, чтобы позволить iOS-изображению выборнику или попапу полностью закрыться перед тем как будет отображен `alert`:

```javascript
setTimeout(function() {
    // делайте что хотите здесь!
}, 0);

Квирк Windows Phone 7

Вызов нативной программы камеры при подключении устройства через Zune не работает и запускает обратный вызов ошибки.

Квирк Tizen

Tizen поддерживает только значение destinationType равное Camera.DestinationType.FILE_URI и значение sourceType равное Camera.PictureSourceType.PHOTOLIBRARY.

Ошибки CameraOptions

Квирк Amazon Fire OS

  • Любое значение cameraDirection приведёт к фотографии с тыльной стороны камеры.

  • Пропускает параметр allowEdit.

  • Camera.PictureSourceType.PHOTOLIBRARY и Camera.PictureSourceType.SAVEDPHOTOALBUM отображают одинаковый альбом фотографий.

Квирк Android

  • Любое значение cameraDirection приведёт к фотографии с тыльной стороны камеры.- allowEdit непредсказуем на Android и его следует избегать! Реализация этого плагина на Android пытается найти и использовать приложение на устройстве пользователя для обработки изображений. Плагин не имеет контроля над тем, какое приложение выбирает пользователь для выполнения обработки изображений, поэтому очень возможно, что пользователь выберет неконфигурируемый вариант, что приведёт к неудаче плагина. Это иногда работает, поскольку большинство устройств имеют приложения, которые обрабатывают изображения способом совместимым с этим плагином (например, Google Plus Photos), но полагаться на то, что это всегда так — неуместно. Если редактирование изображений обязательно для вашего приложения, рассмотрите возможность использования сторонней библиотеки или плагина, который предоставляет свои собственные средства для редактирования изображений для более надёжного решения.- Camera.PictureSourceType.PHOTOLIBRARY и Camera.PictureSourceType.SAVEDPHOTOALBUM отображают один и тот же альбом фотографий.

  • Пропускает параметр encodingType, если изображение не было отредактировано (то есть quality равно 100, correctOrientation равно false, и нет значений targetHeight или targetWidth). Исходник CAMERA всегда вернёт JPEG-файл, предоставленный нативной камерой, а источники PHOTOLIBRARY и SAVEDPHOTOALBUM вернут выбранный файл в существующем кодировании.

Ошибки BlackBerry 10

  • Пропускает параметр quality.

  • Пропускает параметр allowEdit.

  • Поддержка Camera.MediaType отсутствует.

  • Пропускает параметр correctOrientation.

  • Пропускает параметр cameraDirection.

Ошибки Firefox OS

  • Пропускает параметр quality.

  • Camera.DestinationType игнорируется и равен 1 (URI файла изображения).

  • Пропускает параметр allowEdit.

  • Пропускает параметр PictureSourceType. Пользователь выбирает его в диалоговом окне.

  • Пропускает параметр encodingType.

  • Пропускает параметры targetWidth и targetHeight.

  • Поддержка Camera.MediaType отсутствует.

  • Пропускает параметр correctOrientation.

  • Пропускает параметр cameraDirection.

Ошибки iOS

  • При использовании destinationType.FILE_URI фотографии сохраняются в временном каталоге приложения. Содержимое временного каталога приложения удаляется при завершении работы приложения.

  • При использовании destinationType.NATIVE_URI и sourceType.CAMERA фотографии сохраняются в альбоме снимков независимо от значения параметра saveToPhotoAlbum.#### Ошибки Tizen

  • Несколько опций не поддерживаются.

  • Всегда возвращает FILE URI.

Ошибки Windows Phone 7 и 8

  • Пропускает параметр allowEdit.

  • Пропускает параметр correctOrientation.

  • Пропускает параметр cameraDirection.

  • Пропускает параметр saveToPhotoAlbum. ВАЖНО: Все изображения, созданные с помощью API камеры Cordova для WP8/8, всегда копируются в раздел фотографий телефона. В зависимости от настроек пользователя это может также означать автоматическую загрузку изображения на OneDrive. Это может привести к тому, что изображение станет доступным для более широкой аудитории, чем было запланировано вашим приложением. Если это является препятствием для вашего приложения, вам потребуется реализовать CameraCaptureTask как описано на MSDN. Вы можете также оставить комментарий или проголосовать за связанный баг в трекере ошибок.

  • Пропускает свойство mediaType параметров cameraOptions, так как SDK Windows Phone не предоставляет способ выбора видео из PHOTOLIBRARY.

Комментарии ( 0 )

Вы можете оставить комментарий после Вход в систему

Введение

Клонировать cordova-plugin-camera. Развернуть Свернуть
Apache-2.0
Отмена

Обновления

Пока нет обновлений

Участники

все

Недавние действия

Загрузить больше
Больше нет результатов для загрузки
1
https://api.gitlife.ru/oschina-mirror/wingsfrog-wfPluginCamera.git
git@api.gitlife.ru:oschina-mirror/wingsfrog-wfPluginCamera.git
oschina-mirror
wingsfrog-wfPluginCamera
wingsfrog-wfPluginCamera
master