PhoneGap Caméra API pour Android - Uncaught Exception
Je suis en train de faire tourner la Caméra à l'aide de l'API Phone gap sous Android, et je suis en cours d'exécution dans toutes sortes de questions.
Je viens de copier phonegap appareil photo exemple.
J'obtiens l'erreur suivante
07-12 18:18:00.706: E/Web Console(17837): Uncaught TypeError: Cannot read property 'SAVEDPHOTOALBUM' of undefined at file:///android_asset/www/index.html:98
07-12 18:17:59.456: E/Web Console(17837): Uncaught ReferenceError: Camera is not defined at file:///android_asset/www/index.html:67
J'ai essayé tous les autres type de destination. Il force de travail
destinationType: destinationType.FILE_URI
destinationType: Camera.DestinationType.FILE_URI
destinationType: destinationType.DATA_URL
Aussi j'ai ajouté de l'autorisation pour l'Appareil-photo et le matériel de la caméra de l'autorisation. Mais encore, il a échoué
Ici est la suivante
<!DOCTYPE html>
<html>
<head>
<title>Capture Photo</title>
<script type="text/javascript" charset="utf-8" src="phonegap-1.0.0.js"></script>
<script type="text/javascript" charset="utf-8">
var pictureSource; //picture source
var destinationType; //sets the format of returned value
//Wait for PhoneGap to connect with the device
//
document.addEventListener("deviceready",onDeviceReady,false);
//PhoneGap is ready to be used!
//
function onDeviceReady() {
pictureSource=navigator.camera.PictureSourceType;
destinationType=navigator.camera.DestinationType;
}
//Called when a photo is successfully retrieved
//
function onPhotoDataSuccess(imageData) {
//Uncomment to view the base64 encoded image data
//console.log(imageData);
//Get image handle
//
var smallImage = document.getElementById('smallImage');
//Unhide image elements
//
smallImage.style.display = 'block';
//Show the captured photo
//The inline CSS rules are used to resize the image
//
smallImage.src = "data:image/jpeg;base64," + imageData;
}
//Called when a photo is successfully retrieved
//
function onPhotoURISuccess(imageURI) {
//Uncomment to view the image file URI
//console.log(imageURI);
//Get image handle
//
var largeImage = document.getElementById('largeImage');
//Unhide image elements
//
largeImage.style.display = 'block';
//Show the captured photo
//The inline CSS rules are used to resize the image
//
largeImage.src = imageURI;
}
//A button will call this function
//
function capturePhoto() {
//Take picture using device camera and retrieve image as base64-encoded string
navigator.camera.getPicture(onPhotoDataSuccess, onFail, {destinationType: Camera.DestinationType.FILE_URI, quality: 50 });
}
//A button will call this function
//
function capturePhotoEdit() {
//Take picture using device camera, allow edit, and retrieve image as base64-encoded string
navigator.camera.getPicture(onPhotoDataSuccess, onFail, { destinationType: Camera.DestinationType.FILE_URI,quality: 20, allowEdit: true });
}
//A button will call this function
//
function getPhoto(source) {
//Retrieve image file location from specified source
navigator.camera.getPicture(onPhotoURISuccess, onFail, { quality: 50,
destinationType: Camera.DestinationType.FILE_URI,
sourceType: source });
}
//Called if something bad happens.
//
function onFail(message) {
alert('Failed because: ' + message);
}
</script>
</head>
<body>
<button onclick="capturePhoto();">Capture Photo</button> <br>
<button onclick="capturePhotoEdit();">Capture Editable Photo</button> <br>
<button onclick="getPhoto(pictureSource.PHOTOLIBRARY);">From Photo Library</button><br>
<button onclick="getPhoto(pictureSource.SAVEDPHOTOALBUM);">From Photo Album</button><br>
<img style="display:none;width:60px;height:60px;" id="smallImage" src="" />
<img style="display:none;" id="largeImage" src="" />
</body>
</html>
Il semble que vous êtes de ne pas obtenir les deviceready. Vous devriez mettre une console.journal en onDeviceReady pour voir si elle est appelée.
OriginalL'auteur dhiku | 2012-07-12
Vous devez vous connecter pour publier un commentaire.
Vous assurer que vous êtes y compris les corriger (dernière) cordova fichier dans votre code HTML.
J'ai eu le même problème et j'ai été y compris
plutôt que
a fonctionné pour moi! j'ai téléchargé le cadre zip, et leur exemple utilise "cordova.js", pas de numéro de version.
OriginalL'auteur barners
Vous pouvez essayer ce pour
La capture de Photos à l'aide de phonegap
OriginalL'auteur Nullify
J'ai eu le même problème je l'ai résolu sur trois étapes
Le javascript inclure
J'ai utilisé cordova.js SEUL et retiré à tout phonegap.js
De l'installation du plugin(s)
Vous devez installer la caméra plugin en utilisant la ligne de commande; xml seulement ne fonctionne pas
Utiliser android package
Dans votre xml vous pouvez utilisez
org.apache.cordova.CameraLauncher
c'est mal et vous donnera NullPointer exception.Le forfait peut être inclus comme ça
De leur donner un essai!
Merci 🙂
OriginalL'auteur shady sherif
2.0.0.js cela peut résoudre votre problème
vous code est bon seulement ces cordova-2.0.0.js uniquement les fichiers de
OriginalL'auteur sharma_kunal
Juste en ajoutant
<script src="phonegap.js"></script>
dans mon html résolu pour moi!
Et aussi, j'ai eu
<script src="cordova.js"></script>
, donc enlevé et gardé seulement<script src="phonegap.js"></script>
.OriginalL'auteur Muhammad Riyaz
J'ai eu le même problème.
Vous utilisez
pictureSource.PHOTOLIBRARY
etpictureSource.SAVEDPHOTOALBUM
directement dans le code.Le problème est que le code html est chargé avant le javascript puis que vous essayez d'atteindre
pictureSource
. Mais n'a pas été spécifié encore.Vous devez l'utiliser que lorsque l'application est entièrement chargé (eg. utiliser jQuery événement dans les documents.prêt ou une alternative à javascript)
OriginalL'auteur tttpapi