离子 - 推送通知 - ' pushNotification'未定义的

时间:2016-05-27 07:54:49

标签: cordova ionic-framework push-notification

我想创建带通知的Ionic应用程序。 我安装了PushPlugin,这是我的控制器:

.controller('MainCtrl', function($scope,$ionicPlatform,$cordovaPush) {
  $ionicPlatform.ready(function () {
    var androidConfig = {
      "senderID": "ID"
    };

      $cordovaPush.register(androidConfig).then(function(result) {
        // Success
        console.log(result);
      }, function(err) {
        // Error
      });
  })
});

离子服务运行后,我遇到了错误:

  

ng-cordova.js:6180 Uncaught TypeError:无法读取属性   ' pushNotification'未定义的

我找到了一些解决方案,所以我修改了我的代码:

index.html(仅头标记):

<head>
    <meta charset="utf-8">
    <meta name="viewport" content="initial-scale=1, maximum-scale=1, user-scalable=no, width=device-width">
    <title></title>
    <link href="css/ionic.app.css" rel="stylesheet">

    <script src="lib/ionic/js/ionic.bundle.js"></script>

    <script src="lib/ngCordova/dist/ng-cordova.js"></script>

    <script src="cordova.js"></script>
    <!-- copy from plugin www folder -->
    <script src="js/libs/PushNotification.js"></script>

    <script src="js/app.js"></script>
    <script src="js/controllers.js"></script>
</head>

和我的控制员:

.controller('MainCtrl', function($scope,$ionicPlatform,$cordovaPush) {
  $ionicPlatform.ready(function () {
    var androidConfig = {
      "senderID": "ID"
    };

      if (window.plugins && window.plugins.pushNotification){
          console.log("plugins"); //it displays
          $cordovaPush.register(androidConfig).then(function(result) {
            // Success
            console.log(result);
          }, function(err) {
            // Error
          });
        }
  })
});

现在,我得到了:

  

未捕获的ReferenceError:未定义cordova

我很困惑,如何运行它。

插件列表:

com.phonegap.plugins.PushPlugin 2.5.0 "PushPlugin"
cordova-plugin-console 1.0.3 "Console"
cordova-plugin-device 1.1.2 "Device"
cordova-plugin-splashscreen 3.2.2 "Splashscreen"
cordova-plugin-statusbar 2.1.3 "StatusBar"
cordova-plugin-whitelist 1.2.2 "Whitelist"
ionic-plugin-keyboard 2.2.0 "Keyboard"

1 个答案:

答案 0 :(得分:0)

确保以下内容:

1 ..通过运行以下命令行添加ionic-platform-web-client和push-plugin:

ionic add ionic-platform-web-client
ionic plugin add phonegap-plugin-push --variable SENDER_ID="GCM_PROJECT_NUMBER"

2 ..运行以下命令行为您的应用分配ID:

ionic io init

3 ..将debug设置为true以便能够在浏览器中进行测试

ionic config set dev_push true

4 ..在run()方法中设置推送注册

angular.module('app', ['ionic','ionic.service.core' ])
.run(function($ionicPlatform) {

    $ionicPlatform.ready(function() {
      var push = new Ionic.Push({
        "debug": true
      });

      push.register(function(token) {
        console.log("My Device token:",token.token);        
        push.saveToken(token, {'ignore_user': true}) ;  // persist the token in the Ionic Platform
      });
    }); 

})

测试您的推送,如果它在浏览器中有效,则禁用调试并开始在您的设备上进行测试。

ionic config set dev_push false

完整指南http://docs.ionic.io/docs/push-quick-start