私が使用しているプロジェクトはIonic2
/Cordova Plugins
/Android
です。ドット表記を使用してCordovaプラグインを呼び出す方法は?
$ mkdir stackoverflow-question
$ cd stackoverflow-question
$ git clone https://github.com/napolev/stackoverflow-question.git .
$ npm install
$ ionic platform add android
$ ionic run android -l
このプロジェクトは正常に動作します。基本的にはHello World
プロジェクトです。画面上のボタンをクリックすると、Cordova
プラグインによって返されたメッセージHello, World
が返されます。
window.hello.greet(...)
代わりの
window["hello"].greet(...)
私の問題は、ライン17
にということです10
しかし、私が使用している場合:
Property 'hello' does not exist on type 'Window'.
次の画像上で見ることができるように:
利用するために、ドット表記を使用する方法上の任意のアイデアwindow.hello.greet(...)
私はエラーを取得しますカスタムCordova
プラグインの?
[EDIT 1]
私は次のようにコードを変更して正常に動作している彼のコメントに@sebaferreras
の提案を1として:
import { Component } from "@angular/core";
import { NavController } from "ionic-angular";
@Component({
selector: "page-home",
templateUrl: "home.html",
})
export class HomePage {
private window: any = window;
private greet: string;
constructor(
public navCtrl: NavController,
) {}
private doGreet() {
this.window.hello.greet("World", (message) => {
this.greet = message;
},() => {
this.greet = "[ERROR]";
});
}
}
が、私は知っているしたいと思います:
これは良い習慣です:
private window: any = window;
上記の行に使用できる
any
より具体的なタイプは他にありますか?
ありがとうございます。しかし、私は2つの小さな質問があります.1つは、プライベートウィンドウ:any = window;を使用するのがよい習慣ですか?2-前の行で使用できる 'any'より具体的な他のタイプはありますか? – davidesp
答えを更新しました。 1.に関して、 'window'はグローバルオブジェクトであるので、それをコンポーネントのプロパティに割り当てるのはあまり意味がありません(その場合は、' hello'プロパティを単一の場所)。約2.、上の答えの更新を確認してください:) – sebaferreras