Не могу заставить @ TeamHive / конденсаторную электронную почту работать в Ionic 4 - PullRequest
0 голосов
/ 09 июля 2019

https://github.com/TeamHive/capacitor-email - это плагин для электронной почты Capacitor, позволяющий отправлять электронные письма из мобильных приложений Ionic 4. Я не могу заставить демо работать на Android Studio 3.4.1, @ ionic / angular 4.0.0-beta.7 и @ конденсатор / ядро ​​1.1.0. Я получаю 5 ошибок, таких как:

ERROR: Unable to resolve dependency for ':app@debug/compileClasspath': Could not resolve project :capacitor-android-plugins.

Если я пытаюсь использовать пример кода, предоставленный на странице Github, в начальном приложении Ionic, я получаю ошибку времени выполнения:

E/Capacitor/Plugin/Console: ERROR Error: Uncaught (in promise): TypeError: Cannot read property 'requestPermission' of undefined

В моем примере кода ниже, на основе примера кода Github, console.log выводит this.email = {}, поэтому new Email() возвращает пустой объект.

  email: Email;

  constructor() { }

  ngOnInit() {
    this.email = new Email();
    console.log('this.email = ' + JSON.stringify(this.email));
  }

  async sendEmail() {

    try {
      await this.email.hasPermission();
    } catch (e) {
      await this.email.requestPermission();
    }

Кто-нибудь заставил этот плагин конденсатора работать вообще?

1 Ответ

0 голосов
/ 17 июля 2019

Чтобы этот плагин работал, вы должны отредактировать сгенерированный класс MainActivity и добавить add(EmailPlugin.class);, как показано ниже.

import com.meetmaestro.hive.capacitor.email.EmailPlugin;

public class MainActivity extends BridgeActivity {
  @Override
  public void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);

    // Initializes the Bridge
    this.init(savedInstanceState, new ArrayList<Class<? extends Plugin>>() {{
      // Additional plugins you've installed go here
      // Ex: add(TotallyAwesomePlugin.class);
      add(EmailPlugin.class);
    }});
  }
}
...