[英]How to import my capacitor plugin to Ionic android app
我需要在我的 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 应用程序: ionic build
并运行:
npx cap copy
npx cap sync
npx cap open android
并在 Android Studio 中运行该项目。 当我运行该项目时,出现错误: Cannot read property 'echo' of undefined
。 我认为这是因为我需要在 MainActivity class 中添加插件:
// 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 项目?
我用这个 [https://capacitorjs.com/docs/android/custom-code][1]
在com/example/myapp/的这条路径android/app/src/main/java中,我在 MainActivity.java 的同一级别创建了我的 PluginClass
完美调用customFunction。:[1]:https://capacitorjs.com/docs/android/custom-code
我遇到了同样的问题,我解决了从 Android Studio 重建项目的问题,因此它获得了插件的新编译配置。
Go 到 Android Studio构建菜单并单击“制作项目”
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.