You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

434 lines
16 KiB

  1. <!---
  2. Licensed to the Apache Software Foundation (ASF) under one
  3. or more contributor license agreements. See the NOTICE file
  4. distributed with this work for additional information
  5. regarding copyright ownership. The ASF licenses this file
  6. to you under the Apache License, Version 2.0 (the
  7. "License"); you may not use this file except in compliance
  8. with the License. You may obtain a copy of the License at
  9. http://www.apache.org/licenses/LICENSE-2.0
  10. Unless required by applicable law or agreed to in writing,
  11. software distributed under the License is distributed on an
  12. "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
  13. KIND, either express or implied. See the License for the
  14. specific language governing permissions and limitations
  15. under the License.
  16. -->
  17. # cordova-plugin-camera
  18. Dieses Plugin definiert eine globale `navigator.camera`-Objekt, das eine API für Aufnahmen und für die Auswahl der Bilder aus dem System-Image-Library bietet.
  19. Obwohl das Objekt mit der globalen Gültigkeitsbereich `navigator` verbunden ist, steht es nicht bis nach dem `Deviceready`-Ereignis.
  20. document.addEventListener("deviceready", onDeviceReady, false);
  21. function onDeviceReady() {
  22. console.log(navigator.camera);
  23. }
  24. ## Installation
  25. cordova plugin add cordova-plugin-camera
  26. ## navigator.camera.getPicture
  27. Nimmt ein Foto mit der Kamera, oder ein Foto aus dem Gerät Bildergalerie abgerufen. Das Bild wird an den Erfolg-Rückruf als base64-codierte `String` oder als URI für die Image-Datei übergeben. Die Methode selbst gibt ein `CameraPopoverHandle`-Objekt, das verwendet werden kann, um die Datei-Auswahl-Popover neu zu positionieren.
  28. navigator.camera.getPicture( cameraSuccess, cameraError, cameraOptions );
  29. ### Beschreibung
  30. Die `camera.getPicture`-Funktion öffnet das Gerät Standard-Kamera-Anwendung, die Benutzern ermöglicht, Bilder ausrichten. Dieses Verhalten tritt in der Standardeinstellung, wenn `Camera.sourceType` `Camera.PictureSourceType.CAMERA` entspricht. Sobald der Benutzer die Fotoschnäpper, die Kameraanwendung geschlossen wird und die Anwendung wird wiederhergestellt.
  31. Wenn `Camera.sourceType` `Camera.PictureSourceType.PHOTOLIBRARY` oder `Camera.PictureSourceType.SAVEDPHOTOALBUM` ist, dann wird ein Dialogfeld angezeigt, das Benutzern ermöglicht, ein vorhandenes Bild auszuwählen. Die `camera.getPicture`-Funktion gibt ein `CameraPopoverHandle`-Objekt, das verwendet werden kann, um die Bild-Auswahl-Dialog, z. B. beim ändert sich der Orientierung des Geräts neu positionieren.
  32. Der Rückgabewert wird an die `cameraSuccess`-Callback-Funktion in einem der folgenden Formate, je nach dem angegebenen `cameraOptions` gesendet:
  33. * A `String` mit dem base64-codierte Foto-Bild.
  34. * A `String` , die die Bild-Datei-Stelle auf lokalem Speicher (Standard).
  35. Sie können tun, was Sie wollen, mit dem codierten Bildes oder URI, zum Beispiel:
  36. * Rendern Sie das Bild in ein `<img>` Tag, wie im folgenden Beispiel
  37. * Die Daten lokal zu speichern ( `LocalStorage` , [Lawnchair][1], etc..)
  38. * Post die Daten an einen entfernten server
  39. [1]: http://brianleroux.github.com/lawnchair/
  40. **Hinweis**: Fotoauflösung auf neueren Geräten ist ganz gut. Fotos aus dem Gerät Galerie ausgewählt sind nicht zu einer niedrigeren Qualität herunterskaliert, selbst wenn ein `Qualität`-Parameter angegeben wird. Um Speicherprobleme zu vermeiden, legen Sie `Camera.destinationType` auf `FILE_URI` statt `DATA_URL`.
  41. ### Unterstützte Plattformen
  42. * Amazon Fire OS
  43. * Android
  44. * BlackBerry 10
  45. * Browser
  46. * Firefox OS
  47. * iOS
  48. * Tizen
  49. * Windows Phone 7 und 8
  50. * Windows 8
  51. ### "Einstellungen" (iOS)
  52. * **CameraUsesGeolocation** (Boolean, Standardwert ist False). Zur Erfassung von JPEGs, auf true festgelegt, um Geolocation-Daten im EXIF-Header zu erhalten. Dies löst einen Antrag auf Geolocation-Berechtigungen, wenn auf True festgelegt.
  53. <preference name="CameraUsesGeolocation" value="false" />
  54. ### Amazon Fire OS Macken
  55. Amazon Fire OS verwendet Absichten zum Starten von der Kamera-Aktivität auf dem Gerät, um Bilder zu erfassen und auf Handys mit wenig Speicher, Cordova Tätigkeit getötet werden kann. In diesem Szenario kann das Bild nicht angezeigt, wenn die Aktivität von Cordova wiederhergestellt wird.
  56. ### Android Eigenarten
  57. Android verwendet Absichten zum Starten von der Kamera-Aktivität auf dem Gerät, um Bilder zu erfassen und auf Handys mit wenig Speicher, Cordova Tätigkeit getötet werden kann. In diesem Szenario kann das Bild nicht angezeigt, wenn die Aktivität von Cordova wiederhergestellt wird.
  58. ### Browser-Eigenheiten
  59. Fotos können nur als base64-codierte Bild zurückgeben werden.
  60. ### Firefox OS Macken
  61. Kamera-Plugin ist derzeit implementiert mithilfe von [Web-Aktivitäten][2].
  62. [2]: https://hacks.mozilla.org/2013/01/introducing-web-activities/
  63. ### iOS Macken
  64. Einschließlich einer JavaScript-`alert()` entweder Rückruffunktionen kann Probleme verursachen. Wickeln Sie die Warnung innerhalb eine `setTimeout()` erlauben die iOS-Bild-Picker oder Popover vollständig zu schließen, bevor die Warnung angezeigt:
  65. setTimeout(function() {
  66. // do your thing here!
  67. }, 0);
  68. ### Windows Phone 7 Macken
  69. Die native Kameraanwendung aufrufen, während das Gerät via Zune angeschlossen ist funktioniert nicht und löst eine Fehler-Callback.
  70. ### Tizen Macken
  71. Tizen unterstützt nur ein `DestinationType` von `Camera.DestinationType.FILE_URI` und ein `SourceType` von `Camera.PictureSourceType.PHOTOLIBRARY`.
  72. ### Beispiel
  73. Nehmen Sie ein Foto und rufen Sie sie als base64-codierte Bild:
  74. navigator.camera.getPicture(onSuccess, onFail, { quality: 50,
  75. destinationType: Camera.DestinationType.DATA_URL
  76. });
  77. function onSuccess(imageData) {
  78. var image = document.getElementById('myImage');
  79. image.src = "data:image/jpeg;base64," + imageData;
  80. }
  81. function onFail(message) {
  82. alert('Failed because: ' + message);
  83. }
  84. Nehmen Sie ein Foto und rufen Sie das Bild-Datei-Speicherort:
  85. navigator.camera.getPicture(onSuccess, onFail, { quality: 50,
  86. destinationType: Camera.DestinationType.FILE_URI });
  87. function onSuccess(imageURI) {
  88. var image = document.getElementById('myImage');
  89. image.src = imageURI;
  90. }
  91. function onFail(message) {
  92. alert('Failed because: ' + message);
  93. }
  94. ## CameraOptions
  95. Optionale Parameter die Kameraeinstellungen anpassen.
  96. { quality : 75,
  97. destinationType : Camera.DestinationType.DATA_URL,
  98. sourceType : Camera.PictureSourceType.CAMERA,
  99. allowEdit : true,
  100. encodingType: Camera.EncodingType.JPEG,
  101. targetWidth: 100,
  102. targetHeight: 100,
  103. popoverOptions: CameraPopoverOptions,
  104. saveToPhotoAlbum: false };
  105. ### Optionen
  106. * **Qualität**: Qualität des gespeicherten Bildes, ausgedrückt als ein Bereich von 0-100, wo 100 in der Regel voller Auflösung ohne Verlust aus der Dateikomprimierung ist. Der Standardwert ist 50. *(Anzahl)* (Beachten Sie, dass Informationen über die Kamera Auflösung nicht verfügbar ist.)
  107. * **DestinationType**: Wählen Sie das Format des Rückgabewerts. Der Standardwert ist FILE_URI. Im Sinne `navigator.camera.DestinationType` *(Anzahl)*
  108. Camera.DestinationType = {
  109. DATA_URL : 0, // Return image as base64-encoded string
  110. FILE_URI : 1, // Return image file URI
  111. NATIVE_URI : 2 // Return image native URI (e.g., assets-library:// on iOS or content:// on Android)
  112. };
  113. * **SourceType**: Legen Sie die Quelle des Bildes. Der Standardwert ist die Kamera. Im Sinne `navigator.camera.PictureSourceType` *(Anzahl)*
  114. Camera.PictureSourceType = {
  115. PHOTOLIBRARY : 0,
  116. CAMERA : 1,
  117. SAVEDPHOTOALBUM : 2
  118. };
  119. * **AllowEdit**: einfache Bearbeitung des Bildes vor Auswahl zu ermöglichen. *(Boolesch)*
  120. * **EncodingType**: die zurückgegebene Image-Datei ist Codierung auswählen. Standardwert ist JPEG. Im Sinne `navigator.camera.EncodingType` *(Anzahl)*
  121. Camera.EncodingType = {
  122. JPEG : 0, // Return JPEG encoded image
  123. PNG : 1 // Return PNG encoded image
  124. };
  125. * **TargetWidth**: Breite in Pixel zum Bild skalieren. Muss mit **TargetHeight**verwendet werden. Seitenverhältnis bleibt konstant. *(Anzahl)*
  126. * **TargetHeight**: Höhe in Pixel zum Bild skalieren. Muss mit **TargetWidth**verwendet werden. Seitenverhältnis bleibt konstant. *(Anzahl)*
  127. * **MediaType**: Legen Sie den Typ der Medien zur Auswahl. Funktioniert nur, wenn `PictureSourceType` ist `PHOTOLIBRARY` oder `SAVEDPHOTOALBUM` . Im Sinne `nagivator.camera.MediaType` *(Anzahl)*
  128. Camera.MediaType = {
  129. PICTURE: 0, // allow selection of still pictures only. STANDARD. Will return format specified via DestinationType
  130. VIDEO: 1, // allow selection of video only, WILL ALWAYS RETURN FILE_URI
  131. ALLMEDIA : 2 // allow selection from all media types
  132. };
  133. * **CorrectOrientation**: Drehen Sie das Bild um die Ausrichtung des Geräts während der Aufnahme zu korrigieren. *(Boolesch)*
  134. * **SaveToPhotoAlbum**: das Bild auf das Fotoalbum auf dem Gerät zu speichern, nach Einnahme. *(Boolesch)*
  135. * **PopoverOptions**: iOS-nur Optionen, die Popover Lage in iPad angeben. In definierten`CameraPopoverOptions`.
  136. * **CameraDirection**: Wählen Sie die Kamera (vorn oder hinten-gerichtete) verwenden. Der Standardwert ist zurück. Im Sinne `navigator.camera.Direction` *(Anzahl)*
  137. Camera.Direction = {
  138. BACK : 0, // Use the back-facing camera
  139. FRONT : 1 // Use the front-facing camera
  140. };
  141. ### Amazon Fire OS Macken
  142. * `cameraDirection`Ergebnisse in einem hinten gerichteter Foto Wert.
  143. * Ignoriert die `allowEdit` Parameter.
  144. * `Camera.PictureSourceType.PHOTOLIBRARY`und `Camera.PictureSourceType.SAVEDPHOTOALBUM` beide das gleiche Fotoalbum anzuzeigen.
  145. ### Android Eigenarten
  146. * `cameraDirection`Ergebnisse in einem hinten gerichteter Foto Wert.
  147. * Ignoriert die `allowEdit` Parameter.
  148. * `Camera.PictureSourceType.PHOTOLIBRARY`und `Camera.PictureSourceType.SAVEDPHOTOALBUM` beide das gleiche Fotoalbum anzuzeigen.
  149. ### BlackBerry 10 Macken
  150. * Ignoriert die `quality` Parameter.
  151. * Ignoriert die `allowEdit` Parameter.
  152. * `Camera.MediaType`wird nicht unterstützt.
  153. * Ignoriert die `correctOrientation` Parameter.
  154. * Ignoriert die `cameraDirection` Parameter.
  155. ### Firefox OS Macken
  156. * Ignoriert die `quality` Parameter.
  157. * `Camera.DestinationType`wird ignoriert, und gleich `1` (Bilddatei-URI)
  158. * Ignoriert die `allowEdit` Parameter.
  159. * Ignoriert die `PictureSourceType` Parameter (Benutzer wählt es in einem Dialogfenster)
  160. * Ignoriert die`encodingType`
  161. * Ignoriert die `targetWidth` und`targetHeight`
  162. * `Camera.MediaType`wird nicht unterstützt.
  163. * Ignoriert die `correctOrientation` Parameter.
  164. * Ignoriert die `cameraDirection` Parameter.
  165. ### iOS Macken
  166. * Legen Sie `quality` unter 50 Speicherfehler auf einigen Geräten zu vermeiden.
  167. * Bei der Verwendung `destinationType.FILE_URI` , Fotos werden im temporären Verzeichnis der Anwendung gespeichert. Den Inhalt des temporären Verzeichnis der Anwendung wird gelöscht, wenn die Anwendung beendet.
  168. ### Tizen Macken
  169. * nicht unterstützte Optionen
  170. * gibt immer einen Datei-URI
  171. ### Windows Phone 7 und 8 Eigenarten
  172. * Ignoriert die `allowEdit` Parameter.
  173. * Ignoriert die `correctOrientation` Parameter.
  174. * Ignoriert die `cameraDirection` Parameter.
  175. * Ignoriert die `saveToPhotoAlbum` Parameter. WICHTIG: Alle Aufnahmen die wp7/8 Cordova-Kamera-API werden immer in Kamerarolle des Telefons kopiert. Abhängig von den Einstellungen des Benutzers könnte dies auch bedeuten, dass das Bild in ihre OneDrive automatisch hochgeladen ist. Dies könnte möglicherweise bedeuten, dass das Bild für ein breiteres Publikum als Ihre Anwendung vorgesehen ist. Wenn diese einen Blocker für Ihre Anwendung, Sie müssen die CameraCaptureTask zu implementieren, wie im Msdn dokumentiert: <http://msdn.microsoft.com/en-us/library/windowsphone/develop/hh394006.aspx> Sie können kommentieren oder Up-Abstimmung das Beiträge zu diesem Thema im [Bugtracker][3]
  176. * Ignoriert die `mediaType` -Eigenschaft des `cameraOptions` wie das Windows Phone SDK keine Möglichkeit, Fotothek Videos wählen.
  177. [3]: https://issues.apache.org/jira/browse/CB-2083
  178. ## CameraError
  179. onError-Callback-Funktion, die eine Fehlermeldung bereitstellt.
  180. function(message) {
  181. // Show a helpful message
  182. }
  183. ### Parameter
  184. * **Meldung**: die Nachricht wird durch das Gerät systemeigenen Code bereitgestellt. *(String)*
  185. ## cameraSuccess
  186. onSuccess Callback-Funktion, die die Bilddaten bereitstellt.
  187. function(imageData) {
  188. // Do something with the image
  189. }
  190. ### Parameter
  191. * **CMYK**: Base64-Codierung der Bilddaten, *oder* die Image-Datei-URI, je nach `cameraOptions` in Kraft. *(String)*
  192. ### Beispiel
  193. // Show image
  194. //
  195. function cameraCallback(imageData) {
  196. var image = document.getElementById('myImage');
  197. image.src = "data:image/jpeg;base64," + imageData;
  198. }
  199. ## CameraPopoverHandle
  200. Ein Handle für das Dialogfeld "Popover" erstellt von `navigator.camera.getPicture`.
  201. ### Methoden
  202. * **SetPosition**: Legen Sie die Position der Popover.
  203. ### Unterstützte Plattformen
  204. * iOS
  205. ### setPosition
  206. Legen Sie die Position von der Popover.
  207. **Parameter**:
  208. * `cameraPopoverOptions`: die `CameraPopoverOptions` angeben, dass die neue Position
  209. ### Beispiel
  210. var cameraPopoverHandle = navigator.camera.getPicture(onSuccess, onFail,
  211. { destinationType: Camera.DestinationType.FILE_URI,
  212. sourceType: Camera.PictureSourceType.PHOTOLIBRARY,
  213. popoverOptions: new CameraPopoverOptions(300, 300, 100, 100, Camera.PopoverArrowDirection.ARROW_ANY)
  214. });
  215. // Reposition the popover if the orientation changes.
  216. window.onorientationchange = function() {
  217. var cameraPopoverOptions = new CameraPopoverOptions(0, 0, 100, 100, Camera.PopoverArrowDirection.ARROW_ANY);
  218. cameraPopoverHandle.setPosition(cameraPopoverOptions);
  219. }
  220. ## CameraPopoverOptions
  221. nur iOS-Parametern, die Anker-Element Lage und Pfeil Richtung der Popover angeben, bei der Auswahl von Bildern aus einem iPad Bibliothek oder Album.
  222. { x : 0,
  223. y : 32,
  224. width : 320,
  225. height : 480,
  226. arrowDir : Camera.PopoverArrowDirection.ARROW_ANY
  227. };
  228. ### CameraPopoverOptions
  229. * **X**: x Pixelkoordinate des Bildschirmelement auf dem der Popover zu verankern. *(Anzahl)*
  230. * **y**: y Pixelkoordinate des Bildschirmelement auf dem der Popover zu verankern. *(Anzahl)*
  231. * **width**: Breite in Pixeln, das Bildschirmelement auf dem der Popover zu verankern. *(Anzahl)*
  232. * **height**: Höhe in Pixeln, das Bildschirmelement auf dem der Popover zu verankern. *(Anzahl)*
  233. * **arrowDir**: Richtung der Pfeil auf der Popover zeigen sollte. Im Sinne `Camera.PopoverArrowDirection` *(Anzahl)*
  234. Camera.PopoverArrowDirection = {
  235. ARROW_UP : 1, // matches iOS UIPopoverArrowDirection constants
  236. ARROW_DOWN : 2,
  237. ARROW_LEFT : 4,
  238. ARROW_RIGHT : 8,
  239. ARROW_ANY : 15
  240. };
  241. Beachten Sie, dass die Größe der Popover ändern kann, um die Richtung des Pfeils und Ausrichtung des Bildschirms anzupassen. Achten Sie darauf, um Orientierung zu berücksichtigen, wenn Sie den Anker-Element-Speicherort angeben.
  242. ## navigator.camera.cleanup
  243. Entfernt Mittelstufe Fotos von der Kamera aus der vorübergehenden Verwahrung genommen.
  244. navigator.camera.cleanup( cameraSuccess, cameraError );
  245. ### Beschreibung
  246. Fortgeschrittene Image-Dateien, die in vorübergehender Verwahrung gehalten werden, nach dem Aufruf von `camera.getPicture` entfernt. Gilt nur wenn der Wert von `Camera.sourceType` gleich `Camera.PictureSourceType.CAMERA` und `Camera.destinationType` gleich `Camera.DestinationType.FILE_URI`.
  247. ### Unterstützte Plattformen
  248. * iOS
  249. ### Beispiel
  250. navigator.camera.cleanup(onSuccess, onFail);
  251. function onSuccess() {
  252. console.log("Camera cleanup success.")
  253. }
  254. function onFail(message) {
  255. alert('Failed because: ' + message);
  256. }