0

我是 Angular 和Ionic 框架的新手,想加入科尔多瓦电子邮件作曲家插件。但未能完成这项工作。这是我的所有代码。

我确实安装了 CLI:

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

索引.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>

应用程序.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: 'abcd@gmail.com', 
                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>

单击“发送”按钮时,Chrome 控制台上显示以下错误并且未发送电子邮件 -

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)

你能帮忙提示一下我在这里错过了什么吗?

编辑 1

现在我在 index.html 上添加了以下 js 文件

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

并得到错误控制台 -

require is not defined

当点击发送按钮时 -

TypeError: Cannot read property 'isAvailable' of undefined
4

1 回答 1

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: 'max@mustermann.de',
    cc: 'erika@mustermann.de',
    bcc: ['john@doe.com', 'jane@doe.com'],
    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
 });
});
于 2017-12-09T09:57:43.077 回答