Mit Phonegap Handysensoren ansprechen und verwenden

    Diese Seite verwendet Cookies. Durch die Nutzung unserer Seite erklären Sie sich damit einverstanden, dass wir Cookies setzen. Weitere Informationen

    • Mit Phonegap Handysensoren ansprechen und verwenden

      Kann mir jemand ein Beispiel geben, wie ich mit Phonegap die Handysensoren ansprechen bzw. programmieren kann.
      Z.b. per Klick auf einen Button einer html/JavaScript Seite soll sich die Taschenlampe des Handys einschalten oder ein Foto erstellen können.
      Wie kann ich die GPS Koordinaten auslesen.
      Danke für eine Rückantwort.
    • Hi haiflosse,
      dazu gibt es unterschiedliche Möglichkeiten. Die eine wäre über das kostenlose Intel XDK.
      Dazu habe ich ein Video zum Einstieg gemacht: [url]https://channel9.msdn.com/Series/Intel-XDK-Cross-Plattform-Entwicklung-mit-HTML5-und-JavaScript/05-Sensoren[/url]
      Das Video ist zwar schon etwas älter und das Intel XDK hat mittlerweile einen Plug-In Manager. Sollte aber Selbsterklärend sein.

      Hier nochmal ein paar Artikel meinerseits und von Patrick:
      entwickler.de/online/zugriff-a…nd-javascript-162900.html
      software.intel.com/de-de/blogs…auf-sensoren-hands-on-lab
      wdev.de/2014/07/14/erfahrungsb…-xdk-7-1-sensoren-kamera/
      wdev.de/2015/09/03/erfahrungsb…va-plugins-was-wie-warum/

      Falls du Cordova nativ nutzt, solltest du dir erstmal ein Plugin suchen: cordova.apache.org/plugins/
      Hier gibst du zum Beispiel "camera" ein. Ich würde auf jeden Fall immer überprüfen ob die drei wichtigsten Plattformen unterstützt werden (Android, iOS, Windows).
      Das erste Ergebnis sieht ja auch schon sehr gut aus und kommt von Cordova selbst: npmjs.com/package/cordova-plugin-camera
      Wie du jetzt das Plugin bei deinem Projekt installierst und anwendest wird sehr gut beschrieben:

      Bei deinem Cordova Projekt in der Console folgendes eintippen:
      cordova plugin add cordova-plugin-camera

      Quellcode

      1. document.addEventListener("deviceready", onDeviceReady, false);
      2. function onDeviceReady() {
      3. console.log(navigator.camera);
      4. }


      Wichtig! Denk daran das aus Sicherheitsgründen die Permissions für die Plattformen festgelegt wird.

      Konnte dir meine Antwort helfen?

      Cheers,
      BFreakout
    • Danke für die Antwort.
      Ich verwende Android-Studio.
      Ich habe bei einem Cordova Projekt in der Konsole cordova plugin add cordova-plugin-camera eingegeben.

      Das hat soweit funktioniert.

      Wie kann ich aber nun dies in meine Android-Studio in der index.html verwenden als Beispiel wenn ich auf einen Button drücke dass ein Bild erstellt wird.

      In welcher Datei muss ich den Code:

      Quellcode

      1. document.addEventListener("deviceready", onDeviceReady, false);
      2. function onDeviceReady() {
      3. console.log(navigator.camera);
      4. }

      eingeben.
      Danke nochmals
    • Hi haiflosse,

      bei einem Cordova-Projekt wird in der Index.html automatisch ein JS-Code referenziert, der das deviceready-Event abonniert.
      Man sollte nur auf Cordova-Plugins zugreifen, nachdem dieses Event gefeuert wurde. Wenn du zum Beispiel nach einem Button-Touch erst auf die Kamera zugreifen möchtest,
      brauchst du das nicht wirklich berücksichtigen. Ich weiß nicht welches SPA-Framework du nutzt?! AngularJS? ReactJS? oder nur mit JQuery?
      Demnach musst du das Touch-Event von deinem Button Abonnieren und bringst dann folgenden Code unter,
      um ein Bild zu machen und bei einem Image-Element anzeigen zu lassen:

      Quellcode

      1. navigator.camera.getPicture(onSuccess, onFail, { quality: 50,
      2. destinationType: Camera.DestinationType.DATA_URL
      3. });
      4. function onSuccess(imageData) {
      5. var image = document.getElementById('myImage');
      6. image.src = "data:image/jpeg;base64," + imageData;
      7. }
      8. function onFail(message) {
      9. alert('Failed because: ' + message);
      10. }
      Alles anzeigen


      Konnte ich dir weiterhelfen damit?

      Cheers,
      BFreakout