推送:无法获取 GCM 项目编号,运行 "ionic config set gcm_key your-gcm-id"

PUSH: Unable to get GCM project number, run "ionic config set gcm_key your-gcm-id"

我无法向 android 发送推送通知。 我更新到最新的 ionic cli 我更新到最新的离子库 之后也做了:

ionic config build

ionic prepare android

我的 io-config.json 有

{"app_id":"01e6d3ad","api_key":"some_secret_key","gcm_key":"142738311658"}

我做了几次 ionic config set gcm_key your-gcm-id 并用我的项目 ID 替换了 'your-gcm-id'。

但我仍然收到这条消息:

PUSH: Unable to get GCM project number, run "ionic config set gcm_key your-gcm-id"

当我尝试注册离子通知时,我还得到:

$ionicPush:REGISTER_ERROR org.json.JSONObject cannot be cast to java.lang.String

打开 .io-config.json 文件并在 gcm_key 值两边加上引号。之后尝试你的命令。

参见 this link

希望它的工作。

所以基本上问题是 Ionic 框架有一些变化:)

首先,像 ionic-push 和 core 这样的一些库被删除了,应该使用 'ionic-platform-web-client' 来代替所有其他库。

为了能够安装它,您应该将 ionic cli 更新到最新版本。

(不要忘记从您的 index.html 中删除指向 ionic core 和 ionic push 的链接)

注册码本身也改变了,你不再等待事件,你应该使用下面的代码:

$ionicPlatform.ready(function() {
    Ionic.io(); 

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

    push.register(function(token) {
      console.log("Device token:",token.token);
    });
  });

对于可能遇到问题的人的几点补充:

  1. 确保在 cordova.js

  2. 之后包含 PushNotification.js
  3. 如果您无法使用

    安装推送通知插件

    ionic 插件添加 phonegap-plugin-push

尝试使用

安装它
cordova plugin add https://github.com/phonegap/phonegap-plugin-push
  1. 删除插件尤其是 ionic core 后 - 确保 运行

    ionic 配置构建

在 Android 的 Ionic documentation 之后,您必须 运行 命令:

ionic config set gcm_key <your-gcm-project-number>

为了将projectNumber添加到.io-config.json

您似乎在使用发件人 ID 而不是服务器密钥。 ionic配置的gcm_key是指firebase提供的server-key。您可以使用

ionic config set gcm_key <your-gcm-project-number>

或将值 server-key 添加到文件 .io-config.json 中的键 gcm-key,您可以在离子项目目录中找到该文件。