プラグイン開発のワークフロー
新しいプラグインを作成したら、様々なプラットフォームへの機能実装を開始します。
新しいメソッドを実装する
プラグインに新しい機能を実装するには、まず src/definitions.ts
にあるプラグイン用にエクスポートされた TypeScript インターフェースで、メソッドのシグネチャを定義します。
以下の例では、 latitude
と longitude
を受け取る openMap()
メソッドを追加しています。アプリにインポートして使用できるメソッドのパラメータのインターフェースを定義するのは重要な習慣です。
export interface EchoPlugin {
echo(options: { value: string }): Promise<{ value: string }>;
+ openMap(options: OpenMapOptions): Promise<void>;
}
+export interface OpenMapOptions {
+ latitude: number;
+ longitude: number;
+}
web の実装を src/web.ts
で行います:
import type {
EchoPlugin,
+ OpenMapOptions,
} from './definitions';
export class EchoWeb extends WebPlugin implements EchoPlugin {
// other methods
+ async openMap(location: OpenMapOptions): Promise<void> {
+ // logic here
+ }
}
プラグインをコンパイルするには、plugin ディレクトリに移動して、実行します:
npm run build
Android の機能 は android/src/main/[nested folders]/EchoPlugin.java
で実 装します:
@PluginMethod()
public void openMap(PluginCall call) {
Double latitude = call.getDouble("latitude");
Double longitude = call.getDouble("longitude");
// more logic
call.resolve();
}
iOS の機能 は ios/Plugin/EchoPlugin.swift
に実装します:
@objc func openMap(_ call: CAPPluginCall) {
let latitude = call.getString("latitude")
let longitude = call.getNumber("longitude")
// more logic
call.resolve()
}