2017-12-09 4 views
0

Ich bin neu auf Angular und Ionic Framework und möchten das Cordova E-Mail-Composer-Plugin integrieren. Aber das konnte nicht abgeschlossen werden. Hier ist mein ganzer Code.Arbeiten mit CordovaEmailComposer

habe ich die CLI installieren:

ionic cordova plugin add https://github.com/katzer/cordova-plugin-email-composer.git 

Index.HTML

<script src="lib/ionic/js/ionic.bundle.js"></script> 
    <script src="cordova.js"></script> 
    <script src="js/openfb.js"></script> 
    <script src="js/ngopenfb.js"></script> 
    <script src="js/ngCordovaOauth.js"></script> 
    <script src="settings.js"></script> 
    <script src="js/angular-translate.min.js"></script> 
    <script src="translate.js"></script> 
    <script src="js/app.js"></script> 
    <script src="js/services.js"></script> 
    <script src="js/controllers.js"></script> 
    <script src="js/directives.js"></script> 
    <script src="js/ngStorage.js"></script> 
    <script src="js/ionic-close-popup.js"></script> 
    <script src="js/angular-base64.js"></script> 

App.JS

angular.module('starter', ['ionic', 'starter.services', 'starter.controllers', 'starter.translate', 'ngStorage', 'ionic.closePopup', 'ab-base64', 'ngOpenFB', 'ngCordovaOauth','starter.directive']) 

Controller:

.controller('EmailController', function($scope) { 
    $scope.sendEmail=function(EmailAddr){ 
     var email = 
      { 
       to: '[email protected]', 
       subject: 'Test Message', 
       body: 'This is a test message', 
       isHtml: true 
      }; 
     $cordovaEmailComposer.isAvailable().then(function() { 
      $cordovaEmailComposer.open(email).then(null, function() { 
      // user cancelled email 
      }); 
     }, function() { 
      // not available 
     }); 
    };  
}) 

HTML:

<div class="list theme-forms" ng-controller="EmailController"> 
<button class="button button-block button-positive" ng-click="sendEmail()">SEND</button> 
</div> 

Wenn auf Senden-Button geklickt haben, wird folgende Fehlermeldung auf Chromkonsole und E-Mail angezeigt nicht gesendet -

ionic.bundle.js:150 ReferenceError: $cordovaEmailComposer is not defined 
    at b.$scope.sendEmail (controllers.js:746) 
    at fn (eval at compile (ionic.bundle.js:260), <anonymous>:4:218) 
    at ionic.bundle.js:472 
    at b.$eval (ionic.bundle.js:176) 
    at b.$apply (ionic.bundle.js:177) 
    at HTMLButtonElement.<anonymous> (ionic.bundle.js:472) 
    at Pf (ionic.bundle.js:70) 
    at HTMLButtonElement.d (ionic.bundle.js:70) 
    at n (ionic.bundle.js:22) 
    at t (ionic.bundle.js:22) 

Könnten Sie einen Hinweis zu geben, helfen, was ich hier verpasst haben?

EDIT 1

Jetzt habe ich folgende js Datei auf index.html hinzugefügt

js/ng-cordova.min.js 
js/email_composer.js // form Plugin files 

und bekommen Fehlerkonsole -

require is not defined 

Wenn Klicken Sie auf SEND Button -

TypeError: Cannot read property 'isAvailable' of undefined 

Antwort

0
try to use this plugin:- 
http://ngcordova.com/docs/plugins/emailComposer/ 

module.controller('ThisCtrl', function($cordovaEmailComposer) { 

$cordovaEmailComposer.isAvailable().then(function() { 
    // is available 
}, function() { 
    // not available 
}); 

    var email = { 
    to: '[email protected]', 
    cc: '[email protected]', 
    bcc: ['[email protected]', '[email protected]'], 
    attachments: [ 
     'file://img/logo.png', 
     'res://icon.png', 
     'base64:icon.png//iVBORw0KGgoAAAANSUhEUg...', 
     'file://README.pdf' 
    ], 
    subject: 'Cordova Icons', 
    body: 'How are you? Nice greetings from Leipzig', 
    isHtml: true 
    }; 

$cordovaEmailComposer.open(email).then(null, function() { 
    // user cancelled email 
}); 
}); 
+0

Fehler auf der Konsole erhalten, nachdem Sie Ihren Code eingegeben haben - –

+0

[$ injector: unpr] http://errors.angularjs.org/1.5.3/$injector/unpr?p0=ordovaEmailComposerProvider%20%3C-%20% 24cordovaEmailComposer% 20% 3C-% 20EmailController –

+0

Nun habe ich 'js/email_composer.js' in index.html und 'js/ng-cordova.min.js' hinzugefügt. Jetzt wird 'require is not defined' auf der Konsole angezeigt. –