如何将电容器插件导入Ionic安卓应用

时间:2019-11-14 11:03:15

标签: android ionic-framework capacitor

我需要在Ionic应用程序中执行一些Android本机代码,因此我尝试创建一个具有Android支持的电容器插件。我使用以下指南将电容器添加到了Ionic应用程序中:https://capacitor.ionicframework.com/docs/getting-started/with-ionic/。我从此指南中创建了一个插件:https://capacitor.ionicframework.com/docs/plugins/

这是我使用插件的代码:

// home.page.ts
import {Component} from '@angular/core';

import {Plugins} from '@capacitor/core';

@Component({
    selector: 'app-home',
    template: `
<ion-button (click)="onEchoBtnClick()">Submit</ion-button>
`
})
export class HomePage {

    src: string | undefined;

    constructor() {
    }

    onEchoBtnClick() {
        const {Echo} = Plugins;

        const echoPlugin = Echo;

        echoPlugin.echo({
            value: '333'
        }).then(res => {
            alert('ok ' + JSON.stringify(res));
        }).catch(err => {
            alert('err ' + err);
        });
    }

}

然后我构建了离子应用程序:ionic build 并运行:

npx cap copy
npx cap sync
npx cap open android

然后在Android Studio中运行该项目。当我运行项目时,出现错误: Cannot read property 'echo' of undefined。我认为是因为我需要在MainActivity类中添加插件

// Other imports...
import com.example.myapp.EchoPlugin;

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(EchoPlugin.class);
    }});
  }
}

问题是我收到错误消息“包com.example.myapp.EchoPlugin不存在”。我的插件在“ / echo”目录中。 android项目位于“ / android”目录中。如何将Echo插件导入android项目?

2 个答案:

答案 0 :(得分:1)

我使用了这个[https://capacitorjs.com/docs/android/custom-code] [1]

在您的 com / example / myapp / 中的此路径 android / app / src / main / java 中,我在与MainActivity相同级别中创建了PluginClass。 Java

可以完美地调用customFunction!。 [1]:https://capacitorjs.com/docs/android/custom-code

答案 1 :(得分:0)

我遇到了同样的问题,我解决了从Android Studio重建项目的问题,以便获得插件的新编译配置。

转到Android Studio “构建”菜单,然后单击“ 制作项目