情况:
我在我的应用中使用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中,我设置了证书 - 生产模式 - 并激活所有凭据:
在Apple Developer Console中,Push Notifications服务已正确启用(用于生产)
测试:
该应用已在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的任何通知?
我错过了什么吗?
谢谢!
答案 0 :(得分:3)
Docs about priority and content_available attributes
来自docs:
在iOS上,当app服务器需要发送Send-to-Sync消息时设置content_available。非活动客户端应用程序将在后台执行您的逻辑,而前台中的应用程序将消息传递给didReceiveRemoteNotification:。
答案 1 :(得分:0)
在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(数据); });
构建后(离子构建ios)打开Xcode中的离子项目,一般情况下,团队部分选择一个已经支付苹果开发者帐户的帐户。
然后在功能启用推送通知。
如果所有其他约束如证书和.p12文件都按照苹果公会行完成,那么推送肯定会有效。
有关详细信息,请访问此链接:http://ionicframework.com/docs/v2/native/push/