【发布时间】:2016-06-10 04:08:55
【问题描述】:
我通过以下方式创建了一个演示推送通知:
离子启动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 中的仪表板推送消息时,我无法获得推送通知。
有什么想法吗?谢谢。
已编辑:
当我在 ios 设备上进行测试时,我能够获得类似以下的设备令牌:5137fcda 88b7e401 2dc7ac21 e4d80f96 d8702ee6 cd6e08ac 874a0b20 9a9882b0。但是当我使用上面提到的 curl 命令时,我无法收到推送通知。返回值为:
{“数据”:{“创建”:“2016-06-10T09:17:07.031440+00:00”,“配置”: {"profile": "pushdemo_dev", "notification": {"message": "Hello World ios!!!"}, "代币": [“5137fcda88b7e4012dc7ac21e4d80f96d8702ee6cd6e08ac874a0b209a9882b0”]}, “状态”:“打开”,“uuid”:“151f86f9-8b09-4e9c-9402-779544dbcbd1”, “状态”:“入队”,“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 中发帖时,我必须删除空格。但是仍然存在一个问题,当我在前台运行应用程序时,我无法接收推送通知。它仅在应用程序在后台运行时显示推送通知。
【问题讨论】:
-
更改设备令牌正常
-
我无法让它在真实设备上工作。即使通过 curl 命令从设备添加设备令牌。
-
不了解ios,但需要参考官方文档。你已经提到了吗?
-
当然。我遵循每一步。
-
我有同样的问题
标签: ionic-framework push-notification ionic.io