我正在尝试在HTML5 视图中运行Ionic2
应用程序。Movilizer
为了在 Movilizer 容器客户端和 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
文件,我该如何创建它?