我创建了一个演示推送通知:
离子启动推送演示
Add在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:
离子运行安卓-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+000:00","config":{"profile":"pushdemo_dev","notification":{"message":"Hello Worldios!!!"},"令牌":["5137fcda88b7e4012dc7ac21e4d80f96d8702ee6cd6e08ac874a0b209a9882b0"]},"status":"open","uuid":"151f86f9-8b09-4e9c-9402-779544dbcbd1","state":"enqueued","app_id":"0dfdafd1"},"meta":{"version":"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中发帖时,我必须删除空格。然而,仍然存在一个问题,当我在前台运行应用程序时,我无法收到推送通知。它只在应用程序在后台运行时显示推送通知。
我的程序也不能在实际设备上运行,但它可以在浏览器上运行——这意味着我的io运行良好如果你不使用仪表板,而是使用邮递员,这是一个很好的