1

HTML5 ビューIonic2内でアプリを実行しようとしています。MovilizerMovilizer コンテナー クライアントと Ionic2 アプリの間でデータを送信するには、plugins/Movilizer.jsファイルを含める必要があります。私が理解しているように、Movilizer システムはそのファイルを実際の実装を含むファイルに置き換えます。ファイルの内容は次のとおりです。

//File at: src/plugins/Movilizer.js
var Movilizer = function() {};

Movilizer.prototype.readGlobalVariable = function(varName, successCB, errorCB)
{
    result = "Hello World";
    successCB(result);
}

var movilizer = new Movilizer();

TypeScript ファイルで Movilizer インターフェイスを使用できるようにするには、Movilizer.d.ts 定義ファイルを作成する必要があると思います。しかし、私はこれに問題があります。私は次のことを試しました:

//File at: src/plugins/Movilizer/index.d.ts
//Also tried it at: src/plugins/Movilizer.d.ts
export = Movilizer;

declare class Movilizer {
    constructor();

    readGlobalVariable(key: string, onSuccess: (value: string) => void, onError: () => void): void;
}

.d.tsまた、ファイル内のファイルを参照しようとしましたtsconfig.json。これを追加しても何も変わりません:

//File at: tsconfig.json
(...)
"files": [
    "src/plugins/Movilizer/index.d.ts"
],
(...)

次のように FooPage でファイルを使用しようとしました。これはコンパイルします:

//File at: src/pages/foo/foo.ts
import {Component} from '@angular/core';
import {NavController} from 'ionic-angular';
import Movilizer from '../../plugins/Movilizer';

@Component({
    selector: 'page-foo',
    templateUrl: 'foo.html'
})
export class FooPage {

    constructor(public navCtrl: NavController) {
        new Movilizer().readGlobalVariable("myGlobalVariable", (result) => {
            console.log('readGlobalVariable Success: ' + result);
        }, () => {
            console.log('readGlobalVariable Failure!');
        });
    }

}

私はこのようにアプリをテストしています:

$ ionic serve

これはすぐにクラッシュし、次のエラー メッセージが表示されます。

EXCEPTION: Error in ./FooPage class FooPage_Host - inline template:0:0 caused by: __WEBPACK_IMPORTED_MODULE_2__plugins_Movilizer___default.a is not a constructor
ErrorHandler.prototype.handleError
_callAndReportToErrorHandler/<
sg</d</t.prototype.invoke
NgZone.prototype.forkInnerZoneWithAngularBehavior/this.inner<.onInvoke
sg</d</t.prototype.invoke
sg</v</e.prototype.run
h/<
sg</d</t.prototype.invokeTask
NgZone.prototype.forkInnerZoneWithAngularBehavior/this.inner<.onInvokeTask
sg</d</t.prototype.invokeTask
sg</v</e.prototype.runTask
i
mh/</u
mh/<
Vl/r 

私の質問
TypeScript ファイルで Movilizer.js ファイルを使用するにはどうすればよいですか? ファイルが必要な場合.d.ts、どのように作成すればよいですか?

4

1 に答える 1