0

我通过以下方式创建了一个演示推送通知:

离子启动pushdemo

添加在 app.js 中添加以下代码:

.run(function($ionicPlatform) {
  $ionicPlatform.ready(function() {

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

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

添加我为 iOS 创建了推送证书和配置文件,还在谷歌中为 GCM 创建了一个应用程序。

然后我在 .io-config.json中将dev_push设置为false 。

我通过在模拟器中运行应用程序来测试 Android:

离子运行 android -lc

这样做,我可以获得设备令牌。然后我可以通过 curl 命令发送推送通知:

curl -X POST -H "Authorization: Bearer xxxxeXAiOiJKV1QiLCJhbGciOiJIUzI1NiJ9.eyJqdGkiOiI3NjI4MzUyNi1mZjMxLTRhMGItODAxOC0xZmM2ZTY0ZTA3N2YifQ.xCSZk4vQwKajGQ4TOoWyN5GIPnA14jhYfDRMDrtxxxx" -H "Content-Type: application/json" -d '{    "tokens": ["DEV-67e379b0-0752-424c-9a73-0503ce0ad385"],    "profile": "pushdemo_dev",    "notification": {        "message": "Hello World!!!"    }}' "https://api.ionic.io/push/notifications"

当应用程序在前台运行时,我可以毫无问题地接收推送通知。但是当应用程序处于后台时,我无法获得推送通知。

另一个问题是设备令牌在应用重新启动时总是会更改。这是正常的吗?

另一个问题是,当我通过 ionic.io 中的仪表板推送消息时,我无法获得推送通知。

任何想法?谢谢。

编辑:

当我在 ios 设备上进行测试时,我能够获得类似以下的设备令牌:5137fcda 88b7e401 2dc7ac21 e4d80f96 d8702ee6 cd6e08ac 874a0b20 9a9882b0。但是当我使用上面提到的 curl 命令时,我无法收到推送通知。返回值为:

{“数据”:{“创建”:“2016-06-10T09:17:07.031440+00:00”,“配置”:{“配置文件”:“pushdemo_dev”,“通知”:{“消息”:“你好World ios!!!"}, "tokens": ["5137fcda88b7e4012dc7ac21e4d80f96d8702ee6cd6e08ac874a0b209a9882b0"]}, "status": "open", "uuid": "151f86f9-8b09-4e9c-9402-779544endbquestateb" ,“app_id”:“0dfdafd1”},“元”:{“版本”:“2.0.0-beta.0”,“request_id”:“99e6891c-4fa5-40a9-a1ec-2fd283905c5f”,“状态”:201 }}

编辑2:

最后通过使用Postman推送使其在 ios 中工作。返回的设备令牌格式类似于5137fcda 88b7e401 2dc7ac21 e4d80f96 d8702ee6 cd6e08ac 874a0b20 9a9882b0。但是当我在Postman中发布时,我必须删除空间。但是仍然存在一个问题,当我在前台运行应用程序时,我无法接收推送通知。它仅在应用程序在后台运行时显示推送通知。

4

1 回答 1

0

我的程序也不能在真实设备上工作,但它在浏览器上工作,这意味着我的 io 工作正常,而且你不要使用仪表板,而是使用邮递员,这很好

于 2016-06-10T07:39:21.070 回答