离子推送通知:未在IOS中收到

时间:2016-09-19 14:35:23

标签: android ios xcode ionic-framework push-notification

情况:

我在我的应用中使用Ionic Push Notifications

使用android一切正常。但是对于IOS,我没有收到任何通知。

代码应该没问题。在IOS设备内也能正常注册令牌。我可以在数据库中看到令牌。

此外,cURL请求代码应该没问题,因为它适用于android。

我将在下面粘贴所有可能有用的信息:

代码:

初始化:

$ionicCloudProvider.init({

    "core": 
    {
        "app_id": "MY_APP_ID"
    },
    "push": 
    {
        "sender_id": "MY_SENDER_ID",
        "pluginConfig": {
            "ios": {
                "badge": true,
                "sound": true
            }
        }
    }
});

IO-config.json:

{"app_id":"MY_APP_ID","api_key":"MY_API_KEY","dev_push":false,"gcm_key":"MY_GCM_KEY"}

证书:

在ionic.io中,我设置了证书 - 生产模式 - 并激活所有凭据: ionic.io certificate

在Apple Developer Console中,Push Notifications服务已正确启用(用于生产)

enter image description here

测试:

该应用已在App Store中发布。

无论如何,我通过XCODE(连接设备)在本地进行测试,并直接从应用程序商店下载应用程序。

我从未收到任何通知。

使用POSTMAN进行测试结果如下:

{
  "data": {
    "status": "open",
    "uuid": "b55a9024-d0d9-480e-a813-02053bcf2f2a",
    "created": "2016-09-19T14:05:01.097422+00:00",
    "state": "enqueued",
    "app_id": "MY_APP_ID",
    "config": {
      "tokens": [
        "THE_RECEIVER_TOKEN"
      ],
      "notification": {
        "message": "Push test"
      },
      "profile": "MY_IONIC_IO_PROFILE"
    }
  },
  "meta": {
    "status": 201,
    "request_id": "dbb57cba-3817-42ee-baaf-7175b5f6c755",
    "version": "2.0.0-beta.0"
  }
}

问题:

为什么我没有收到有关IOS的任何通知?

我错过了什么吗?

谢谢!

2 个答案:

答案 0 :(得分:3)

  • 确保在iOS设置应用中启用了通知
  • 尝试在push payload
  • 中使用content_available = true
  • 尝试使用优先级="高" in push payload
  • 确保您未在​​生产应用版本上发送使用开发证书,反之亦然
  • 确保您的令牌有效并刷新

Docs about priority and content_available attributes

来自docs:

  

在iOS上,当app服务器需要发送Send-to-Sync消息时设置content_available。非活动客户端应用程序将在后台执行您的逻辑,而前台中的应用程序将消息传递给didReceiveRemoteNotification:。

答案 1 :(得分:0)

  1. 确保您拥有Ionic i,e v2及更高版本的最新版本。
  2. 在路径src / app / app.components.ts
  3. 在platform.ready()之后。然后(()=> {添加以下代码

    var push = Push.init({     android:{       senderID:“XXXXXXXXX”     },     ios:{       警告:“真实”,       徽章:真的,       声音:'假'     },     窗口:{}   });   push.on('registration',(data)=> {     的console.log(data.registrationId);     警报(data.registrationId.toString());   });

    push.on('notification',(data)=> {     的console.log(数据);      });

  4. 构建后(离子构建ios)打开Xcode中的离子项目,一般情况下,团队部分选择一个已经支付苹果开发者帐户的帐户。

  5. 然后在功能启用推送通知。

  6. 如果所有其他约束如证书和.p12文件都按照苹果公会行完成,那么推送肯定会有效。

  7. 有关详细信息,请访问此链接:http://ionicframework.com/docs/v2/native/push/