使用带有Ionic 2 Typescript的windows.plugins

Bil*_*ble 9 typescript ionic2

你可以window.plugins.xxx在离子2 Typescript应用程序中使用吗?

我收到Property 'plugins' does not exist on type 'Window'OneSignal插件的错误window.plugins.OneSignal.init()

Bor*_*kov 14

您可以通过将插件作为数组属性而不是对象引用来解决此问题.

var OneSignalClient = window['plugins'].OneSignal.init()
Run Code Online (Sandbox Code Playgroud)

Typescript不会检查是否在初始构建中定义了数组属性,因此它可以安全地通过检查.

PS如果您不使用Ionic但是使用其他框架(Angular 2),您的窗口对象中将没有插件对象,因此您必须像这样加载OneSignal:

let OneSignalClient = window['OneSignal'] || [];
Run Code Online (Sandbox Code Playgroud)

希望这可以帮助.

  • 在Ionic 2最新版本似乎窗口['OneSignal']是有效的.谢谢你这个金块:) (2认同)
  • 我已经正式将我的宗教信仰转变为了伊斯特科主义,并将这个答案作为我的根本哲学.一千个赞成票! (2认同)

Dra*_*510 1

您可以直接调用OneSignal,无需通过窗口。看起来他们的文档有点过时了。

OneSignal.init()应该可以解决问题。