未处理的Promise拒绝:push.on不是一个函数

时间:2016-09-06 10:19:52

标签: javascript angular typescript ionic-framework ionic2

我正在使用Ionic 2。

尝试设置推送通知时,我收到此Typescrpt 错误。我已从教程中复制了此示例代码,因此可以预期它可以正常工作。我一定有错。请任何想法:

Unhandled Promise rejection: push.on is not a function ; Zone: angular ; Task: Promise.then ; Value:
TypeError: push.on is not a function


push.on('registration', function (data) {

打字稿

import { Push } from 'ionic-native';

  pushNotifications(): void {

    var push = Push.init({
      android: {
        vibrate: true,
        sound: true,
        senderID: "xxxxxxxxxxxxxxxxxxx"
      },
      ios: {
        alert: "true",
        badge: true,
        sound: 'false'
      },
      windows: {}
    });

    push.on('registration', (data) => {
      console.log(data.registrationId);
      alert(data.registrationId.toString());
    });
    push.on('notification', (data) => {
      console.log(data);
      alert("Hi, Am a push notification");
    });
    push.on('error', (e) => {
      console.log(e.message);
    });

  }

1 个答案:

答案 0 :(得分:0)

请务必检查' window.cordova'在使用插件之前可用。您是在实际在设备上还是在浏览器中进行测试? Cordova在浏览器中不可用。

EDIT 为了确保您的代码编辑器知道什么是“window.cordova”'是的,确保你安装了cordova类型。

npm install typings -g
typings install dt~cordova --save --global