离子推送通知:未捕获的ReferenceError:未定义PushNotification

时间:2015-12-23 10:01:47

标签: ionic-framework ionic

您好我是Ionic的新手。 我想对Android手机使用离子推送通知。

我按照ionic website

的所有说明进行操作

为了进行调试,我输入了ionic serve

我看到了

“未捕获的ReferenceError:未定义PushNotification”

在Chrome控制台中。

当然,通知无效。

我缺少什么?

任何评论都会非常有用。谢谢。

以下是我的所作所为

我已将下面的代码放在终端

ionic add ionic-platform-web-client

ionic plugin add phonegap-plugin-push

ionic io init

我的离子配置信息

dev_push is false,

There is 'app_id'

There is 'api_key'

There is 'gcm_key'

的NodeJS v5.2.0(我也试过v4.2.2)

离子cli v1.7.12

以下代码位于$ionicPlatform.ready

var io = Ionic.io();

        var user = Ionic.User.current();

        if (!user.id) {
          user.id = Ionic.User.anonymousId();
        };

        // Just add some dummy data..
        user.set('name', 'moka');
        user.set('bio', 'This is my little bio');
        user.save();

        var push = new Ionic.Push({
          "onNotification": function(notification) {
            alert('Received push notification!');
          },
          "pluginConfig": {
            "android": {
              "iconColor": "#0000FF"
            }
          }
        });


        var callback = function(data) {
          push.addTokenToUser(user);
          user.save();
        };


        push.register(callback);

//编辑

我改变了表格

ionic config set dev_push false

ionic config set dev_push true

不再显示

“未捕获的ReferenceError:未定义PushNotification”

但是我不确定这是否正确。 因为它写在this tutorial

  

关闭您的开发模式

ionic push --google-api-key your-google-api-key
ionic config set gcm_key your-gcm-project-number
ionic config set dev_push false

所以没关系“Uncaught ReferenceError:PushNotification未定义”,如果我想在真正的Android设备上测试?

3 个答案:

答案 0 :(得分:2)

不,没关系。

事实上,正如您所提到的,dev_push在真实设备中测试时必须是假的。

您可以手动将其设置为ionic config set dev_push false或在任何地方都不提(默认情况下为false):)

答案 1 :(得分:1)

Cordova& Phonegap插件仅适用于仿真器和设备。它们不适用于任何broswers。

虽然使用Ionic可以将这些错误静音,但是这样做可以很好地包装你的代码:

if (typeof PushNotification === "defined") {
   // your code here
}

这样,在编写BDD或E2E测试时,它不会抛出任何错误。

您还可以在以下内容中添加代码:

document.addEventListener("deviceready", function () {

}

答案 2 :(得分:-1)

我能够解决以下错误:

  1. ionic remove ionic-platform-web-client
  2. cordova plugin remove phonegap-plugin-push
  3. ionic add ionic-platform-web-client
  4. ionic plugin add phonegap-plugin-push
  5. ionic io init
相关问题