Ionic3 - 电子邮件编辑器 - 对象(...)不是函数

Ionic3 - Email Composer - Object(...) is not a function

对于 Ionic,我正在尝试使用电子邮件。因此,用户按下按钮并转到电子邮件应用程序以发送包含 'to'、'subject' 和 'body'.

组的电子邮件

我遵循了 EmailComposer 的 Ionic 文档:https://ionicframework.com/docs/native/email-composer

于是我安装了插件,接着'usage'。

 import { EmailComposer } from '@ionic-native/email-composer/ngx';

 constructor(private emailComposer: EmailComposer) { }

...


 this.emailComposer.isAvailable().then((available: boolean) =>{
   if(available) {
     //Now we know we can send
   }
 });

 let email = {
   to: 'max@mustermann.de',
   cc: 'erika@mustermann.de',
   bcc: ['john@doe.com', 'jane@doe.com'],
   // attachments: [],
   subject: 'Cordova Icons',
   body: 'How are you? Nice greetings from Leipzig',
   isHtml: true
 }

 // Send a text message using default options
 this.emailComposer.open(email);

只有当我按下按钮时。我收到错误:

 ERROR TypeError: Object(...) is not a function
 at EmailComposer.open (index.js:58)

我不知道这是什么原因。我在一个新的 ionic3 项目中尝试过这个,但我仍然遇到同样的错误。

EmailComposer 来自 @ionic-native/email-composer/ngx 在 Ionic 3 中不支持。它在 Ionic 4 中支持。您需要安装 EmailComposer 来自@ionic-native/email-composer 支持 Ionic 3。 使用以下命令安装 EmailComposer

npm install --save @ionic-native/email-composer@4

问题是您告诉函数要做什么但没有调用函数:

this.emailComposer.isAvailable().then((available: boolean) => {
   if(available) {
     //Now we know we can send
   }
 });

你必须给函数命名,然后告诉它要做什么:

sendEmail() {
    this.emailComposer.isAvailable().then((available: boolean) => {
      if (available) {
      }
    });

    let email = {
      to: 'email@domain',
      subject: '',
      body: '',
      isHtml: true
    };
    this.emailComposer.open(email);
}