我希望用戶能夠拍照或從手機圖庫中選擇圖片。Ionic/Cordova:從手機圖庫中上傳圖片
我成功設法拍照並獲得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
這有點奇怪。我從英特爾應用程序預覽版啓動應用程序。但是照相機的照片根本不起作用。我不知道它是如何工作的,但我想,因爲應用程序是從它們的服務器啓動的,所以它無法訪問這些功能。只是一個假設。 – Brieuc
現在更奇怪了。它只在Genymotion上工作。我試圖從intel xdk構建應用程序並從我的Mobile下載並安裝它。API完美地被調用,並且我獲得了我需要的所有數據。但相機按鈕不像Genymotion那樣彈出相機。 – Brieuc