Я бы хотел, чтобы у пользователя была возможность сделать снимок или выбрать картинку из галереи своего телефона.Ионные/Кордовы: Загрузить изображение из галереи телефона
Я с успехом делаю снимок и получаю imageURI.
Я использую Genymotion как эмулятор, так как мне нужно получить доступ к некоторым функциям, таким как камера. Я знаю, что есть и другие решения. Это немного сложно отлаживать во время эмуляции, но это единственный способ найти доступ к камере. Поэтому я не вижу, что происходит во второй части (выберите изображение из галереи).
$scope.uploadPopup = function() {
var uploadPopup = $ionicPopup.show({
title: "Edit profile's picture",
templateUrl: 'templates/partials/upload-img.html',
buttons: [
{
text: '',
type: 'button-energized icon-center ion-ios7-camera',
onTap: function(e) {
// e.preventDefault() will stop the popup from closing when tapped.
e.preventDefault();
alert('Getting camera');
Camera.getPicture({
quality: 100,
saveToPhotoAlbum: false
}).then(function(imageURI) {
alert(imageURI);
$scope.lastPhoto = imageURI;
}, function(err) {
alert(err);
});
}
},
{
text: 'From gallery',
type: 'button',
onTap: function(e) {
e.preventDefault();
alert('Getting gallery');
Camera.getPicture({
quality: 100,
sourceType: Camera.PictureSourceType.PHOTOLIBRARY
}).then(function(imageURI) {
alert(imageURI);
$scope.lastPhoto = imageURI;
}, function(err) {
alert(err);
});
}
}
]
});
};
Услуги:
app.factory('Camera', ['$q', function($q) {
return {
getPicture: function(options) {
var q = $q.defer();
navigator.camera.getPicture(function(result) {
// Do any magic you need
q.resolve(result);
}, function(err) {
q.reject(err);
}, options);
return q.promise;
}
}
}]);
Является ли это правильный способ сделать? Любые намеки или идеи?
UPDATE:
Когда я добавить:
sourceType: Camera.PictureSourceType.CAMERA
к первой функции (сделать снимок с камеры). Он больше не работает. Несмотря на отсутствие (возможно, по умолчанию), он работает.
Спасибо, я попробую это и верну свой канал. – Brieuc
Это странно. Я запускаю приложение из предварительного просмотра приложения Intel. Но изображение с камеры не работает вообще. Я не уверен, как он работает, но я полагаю, поскольку приложение запускается со своего сервера, что у него нет доступа к этим функциям. Просто предположение. – Brieuc
Это еще более странно. Он работает только с Genymotion. Я попытался создать приложение из intel xdk и загрузить его с мобильного устройства и установить его.API отлично называется, и я получаю все необходимые мне данные. Но кнопка камеры не появляется в камере, как в случае с Genymotion. – Brieuc