PhoneGap Kamera-API für Android - Uncaught Exception
Ich versuche zu laufen, die Kamera-API mithilfe von Telefon-Lücke in Android, und ich habe mich in alle Art von Fragen.
Ich nur kopiert phonegap Kamera Beispiel.
Ich erhalte die folgende Fehlermeldung
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
Ich habe versucht, alle anderen Ziel-Typ. Es dint Arbeit
destinationType: destinationType.FILE_URI
destinationType: Camera.DestinationType.FILE_URI
destinationType: destinationType.DATA_URL
Außerdem habe ich noch die Berechtigung für die Kamera und hardware-Kamera-Berechtigung. Aber es scheiterte
Hier ist die folgende
<!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>
- Es klingt wie Sie sind nicht immer das deviceready-Ereignis. Sollten Sie eine Konsole.log in onDeviceReady, um zu sehen, wenn es aufgerufen wird.
Du musst angemeldet sein, um einen Kommentar abzugeben.
Sicherzustellen, dass Sie sind, einschließlich der richtigen (neuesten) cordova - Datei in den HTML-Code.
Ich hatte das gleiche problem und ich war auch
eher als
Können Sie versuchen, diese für
Erfassen Foto mit phonegap
Ich hatte das gleiche problem, ich löste es, auf drei Schritte
Die javascript-include -
Ich verwendet cordova.js NUR und entfernt phonegap.js
Installieren Sie das plugin(s)
Müssen Sie die Kamera installieren plugin mit Befehl Linie; nur xml nicht funktioniert
Nutzungsrecht ein android-Paket
In Ihre xml-Daten können mit
org.apache.cordova.CameraLauncher
es falsch ist, und geben Sie NullPointer exception.Das richtige Paket enthalten sein wie das
Geben Ihnen einen Versuch!
Danke 🙂
2.0.0.js dies kann Ihr problem lösen
du mit dem code nur aktivieren, wird für diese cordova-2.0.0.js Dateien nur
Nur hinzufügen
<script src="phonegap.js"></script>
in meinem html-gelöst wird es für mich!
Und auch ich hatte
<script src="cordova.js"></script>
, so entfernt es und hielt nur<script src="phonegap.js"></script>
.Ich hatte das gleiche problem.
Sind Sie mit
pictureSource.PHOTOLIBRARY
undpictureSource.SAVEDPHOTOALBUM
direkt in den code.Das problem ist, dass der html-Code geladen wird, bevor der javascript-und dann Sie versuchen zu erreichen
pictureSource
. Aber noch nicht fest.Müssen Sie verwenden, wenn Sie die app vollständig geladen ist (zB. unter Verwendung der jQuery-event in Dokumenten.fertig oder einige alternative in javascript)