我通过以下方式创建了演示推送通知:
离子启动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 中发帖时,我必须删除空格。但是仍然存在问题,当我在前台运行应用程序时,我无法接收推送通知。它仅显示应用程序在后台运行时的推送通知。
答案 0 :(得分:0)
我的程序也在真正的设备上工作,但它在浏览器上工作,这意味着我的io工作正常 并且对于你不使用仪表板而不是使用邮差它是好的