Ionic framework 离子推送通知:未捕获引用错误:未定义推送通知

Ionic framework 离子推送通知:未捕获引用错误:未定义推送通知,ionic-framework,ionic,Ionic Framework,Ionic,你好,我是爱奥尼亚的新手。 我想为android手机使用离子推送通知 我听从了老师的指示 为了进行调试,我键入了ionic service 我看到 “未捕获引用错误:未定义推送通知” 在Chrome控制台中 当然,通知不起作用 我错过了什么? 任何评论都会很有帮助。谢谢 以下是我所做的 我已在终端中输入以下代码 ionic add ionic-platform-web-client ionic plugin add phonegap-plugin-push ionic io init 我的

你好,我是爱奥尼亚的新手。 我想为android手机使用离子推送通知

我听从了老师的指示

为了进行调试,我键入了
ionic service

我看到

“未捕获引用错误:未定义推送通知”

在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

它不再显示

“未捕获引用错误:未定义推送通知”

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

关闭您的开发模式

因此,如果我想在真正的android设备上测试,“未捕获引用错误:未定义PushNotification”并不重要。

不,这不重要

事实上,正如您所提到的,在实际设备中测试时,dev_push必须为false


您可以手动将其设置为false
ionic config set dev_push false
,也可以不在任何地方提及它(默认为false):

Cordova&Phonegap插件仅在模拟器和设备上工作。他们不会在任何broswers上工作

虽然使用Ionic可以使这些错误静音,但一个好的做法可能是将代码包装成这样:

if (typeof PushNotification === "defined") {
   // your code here
}
这样,在编写BDD或E2E测试时,它不会抛出任何错误

您还可以将代码添加到:

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

}

我可以通过以下方式修复此错误:

  • 爱奥尼亚删除爱奥尼亚平台web客户端
  • cordova插件移除phonegap插件推送
  • 爱奥尼亚添加爱奥尼亚平台web客户端
  • 爱奥尼亚插件添加phonegap插件推送
  • 离子io初始化
  • if (typeof PushNotification === "defined") {
       // your code here
    }
    
    document.addEventListener("deviceready", function () {
    
    }