2016-06-05 7 views
0

In einer Phonegap-App habe ich eine Datenbank und möchte, dass der Benutzer seine Einträge am Ende einer App-Sitzung an eine vom Benutzer angegebene E-Mail-Adresse sendet.Javascript zum Senden von Datenbankeinträgen an eine E-Mail

Wie kann ich mit Javascript die Datenbankeinträge auf dem Benutzergerät abrufen und den Benutzer eine E-Mail-Adresse eingeben lassen, an die die Daten gesendet werden?

Irgendwelche Hilfe bitte?

Hier ist die Datenbank Javascript-Code:

<script> 
 
     var FILENAME = 'database.db', 
 
      $ = function (id) { 
 
       return document.getElementById(id); 
 
      }, 
 
      failCB = function (msg) { 
 
       return function() { 
 
        alert('[FAIL] ' + msg); 
 
       } 
 
      }, 
 
      file = { 
 
       writer: { available: false }, 
 
       reader: { available: false } 
 
      }, 
 
      dbEntries = []; 
 
     document.addEventListener('deviceready', function() { 
 
      var fail = failCB('requestFileSystem'); 
 
      window.requestFileSystem(LocalFileSystem.PERSISTENT, 0, gotFS, fail); 
 
     }, false); 
 
     function gotFS(fs) { 
 
      var fail = failCB('getFile'); 
 
      fs.root.getFile(FILENAME, {create: true, exclusive: false}, 
 
          gotFileEntry, fail); 
 
     } 
 
     function gotFileEntry(fileEntry) { 
 
      var fail = failCB('createWriter'); 
 
      file.entry = fileEntry; 
 
      fileEntry.createWriter(gotFileWriter, fail); 
 
      readText(); 
 
     } 
 
     function gotFileWriter(fileWriter) { 
 
      file.writer.available = true; 
 
      file.writer.object = fileWriter; 
 
     } 
 
     function saveText(e) { 
 
      var name = $('name').value, 
 
       desc = $('desc').value, 
 
       fail; 
 
      dbEntries.push('<dt>' + name + '</dt><dd>' + desc + '</dd>') 
 
      $('name').value = ''; 
 
      $('desc').value = ''; 
 
      $('definitions').innerHTML = dbEntries.join(''); 
 
      if (file.writer.available) { 
 
       file.writer.available = false; 
 
       file.writer.object.onwriteend = function (evt) { 
 
        file.writer.available = true; 
 
        file.writer.object.seek(0); 
 
       } 
 
       file.writer.object.write(dbEntries.join("\n")); 
 
      } 
 
      return false; 
 
     } 
 
     function readText() { 
 
      if (file.entry) { 
 
       file.entry.file(function (dbFile) { 
 
        var reader = new FileReader(); 
 
        reader.onloadend = function (evt) { 
 
         var textArray = evt.target.result.split("\n"); 
 
         dbEntries = textArray.concat(dbEntries); 
 
         $('definitions').innerHTML = dbEntries.join(''); 
 
        } 
 
        reader.readAsText(dbFile); 
 
       }, failCB("FileReader")); 
 
      } 
 
      return false; 
 
     } 
 
    </script>

Antwort

0

Verwenden Sie das Plugin https://github.com/katzer/cordova-plugin-email-composer

Es öffnet sich direkt Standard-App des Telefons für E-Mail in Gerät.

js Syntax ist wie folgt:

cordova.plugins.email.open({ 
    to:   Array, // email addresses for TO field 
    cc:   Array, // email addresses for CC field 
    bcc:   Array, // email addresses for BCC field 
    attachments: Array, // file paths or base64 data streams 
    subject: String, // subject of the email 
    body:  String, // email body (for HTML, set isHtml to true) 
    isHtml: Boolean, // indicats if the body is HTML or plain text 
}, callback, scope); 
0

Ok, ich denke, mit Javascript E-Mail nicht funktioniert, wie ich es will arbeiten.

Gibt es eine Möglichkeit, ich könnte PHP verwenden, um die Daten zu greifen?

Wie die Daten nicht mit function readText() angezeigt werden, sondern es zu einem serverseitigen .php über wie mit dieser Form:

<?php 
$empfaenger = $_POST["email"]; 
$absendername = $_POST["name"]; 
$absendermail = $_POST["email"]; 
$betreff = "$absendername have send an email."; 
$answer1 = $_POST["antwort1"]; 
$answert2 = $_POST["antwort2"]; 
$text = "send to: $absendermail 

Namen: $absendername 

Station 1: $answer1 
Station 2: $answer2"; 
mail($empfaenger, $betreff, $text, "From: $absendername <$absendername>"); 
?> 
<head> 
</head> 
<body> 
<h3>Thanks</h3> 
</body> 
Verwandte Themen