在ionic.io中发送推送通知的问题

时间:2016-06-10 04:08:55

标签: ionic-framework push-notification ionic.io

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

  

离子启动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创建的推送证书和配置文件,并在Google中为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中的Dashboard推送消息时,我无法获得推送通知。

有什么想法吗?感谢。

编辑:

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

  

{" data":{" created":" 2016-06-10T09:17:07.031440 + 00:00"," config&# 34 ;:   {"个人资料":" pushdemo_dev","通知":{"消息":" Hello World   ios !!!"},"令牌":   [" 5137fcda88b7e4012dc7ac21e4d80f96d8702ee6cd6e08ac874a0b209a9882b0"]},   " status":" open"," uuid":" 151f86f9-8b09-4e9c-9402-779544dbcbd1",   "州":"排队"," app_id":" 0dfdafd1"}," meta":{&#34 ;版本&#34 ;:   " 2.0.0-beta.0"," request_id":" 99e6891c-4fa5-40a9-a1ec-2fd283905c5f",   " status":201}}

编辑2:

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

1 个答案:

答案 0 :(得分:0)

我的程序也在真正的设备上工作,但它在浏览器上工作,这意味着我的io工作正常 并且对于你不使用仪表板而不是使用邮差它是好的