2017-12-09 18 views
0

私はAngularとIonic Frameworkの新機能で、cordova電子メールコンポーザープラグインを組み込みたいと考えています。しかし、これを完了できませんでした。ここに私のすべてのコードです。CordovaEmailComposerを使って作業する

私は、CLIインストールした:

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('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> 

SENDボタンをクリックすると、次のエラーがクロームコンソールやメールに表示さは送信されません -

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) 

あなたは私がここで見逃している何ヒントを与えるのに役立つだろうか?

EDIT 1

私はindex.htmlを

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

となってエラーコンソール上のJS、次のファイルを追加しました -

require is not defined 

SENDボタンをクリックします -

TypeError: Cannot read property 'isAvailable' of undefined 

答えて

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

コードを適用した後にコンソールでエラーが発生する - –

+0

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

+0

ここで、index.htmlと 'js/ng-cordova.min.js'に 'js/email_composer.js'を追加しました。コンソールで 'require is not defined'と表示されました。 –