Kapitel 6 - Fotos mit der Kamera aufnehmen
Korrekturen
Für die Verwendung der Kamera werden in neueren Version des Expo-SDKs weitere Berechtigungen benötigt
(Permissions.CAMERA
und Permissions.CAMERA_ROLL
). Bitte passen Sie den Code
in JournalItemInput.js
entsprechend an:
// import-Anweisungen mit Permissions erweitern
import { ImagePicker, Permissions } from 'expo';
// diese Methode der Klasse JournalItemInput hinzufuegen
_hasCameraPermissions = async () => {
let permission = await Permissions.askAsync(Permissions.CAMERA);
if (permission.status !== 'granted') {
console.log('Permission to camera was denied');
return false;
}
permission = await Permissions.askAsync(Permissions.CAMERA_ROLL);
if (permission.status !== 'granted') {
console.log('Permission to camera roll was denied');
return false;
}
return true;
};
// vor Verwendung der Kamera werden die Berechtigungen mit obiger Methode abgefragt
_launchCamera = async () => {
if (this._hasCameraPermissions()) {
const result = await ImagePicker.launchCameraAsync();
if (!result.cancelled) {
this.setState({ photo: result.uri });
this.textInput.focus();
}
}
};
// ... der Rest bleibt unveraendert ...
Code
Beispielfoto: foto.png
Tagebucheintrag in der Liste als eigene Komponente: JournalItemRow.js und JournalItems.js
Statisches Bild im Tagebucheintrag: JournalItemRow.js und JournalItems.js
Eingabe als eigene Komponente: JournalItemInput.js und App.js
Kamera-Icon und TouchableItem: JournalItemInput.js, JournalItemRow.js und TouchableItem.js
Kamera verwenden: JournalItemInput.js
Dateien am Ende des Kapitels: App.js, JournalItems.js, JournalItemInput.js, JournalItemRow.js und TouchableItem.js