GCM IOS设备未注册

3
我尝试使用GCM发送APN消息。设备已成功注册,已接收到GCM和IOS设备令牌。当我尝试发送不带“notification”节点的负载时:
{
"to":"GCM TOKEN",   
    "data":{
          "message": "TEST",
          "feed_id": 121,
    }
}

一切都正常运作。

{"multicast_id":4767627754343692164,"success":1,"failure":0,"canonical_ids":0,"results":[{"message_id":"0:1455817174655839%663656d2f9fd7ecd"}]}

但我想在应用程序在后台时处理通知

func application( application: UIApplication,
        didReceiveRemoteNotification userInfo: [NSObject : AnyObject],
        fetchCompletionHandler handler: (UIBackgroundFetchResult) -> Void)

根据文档,我修改有效载荷为:
{       
   "to":"GCM TOKEN",   
   "notification" : {
      "body" : "great match!",
      "title" : "Portugal vs. Denmark",
      "icon" : "myicon"
    },
    "data":{
          "message": "TEST",
          "feed_id": 121,
    }
 }

第一次尝试:

{"multicast_id":4864342605467955143,"success":1,"failure":0,"canonical_ids":0,"results":[{"message_id":"0:1455817367467043%663656d2663656d2"}]}

但是并没有收到通知。
第二次尝试:
{"multicast_id":8013376855048129620,"success":0,"failure":1,"canonical_ids":0,"results":[{"error":"NotRegistered"}]}

然后,即使我删除了通知节点,应用程序也没有收到任何通知。因此,我必须将其删除并重新安装,以接收新的令牌。

第二个问题:

我尝试使用NWPusher检查APN,但出现错误:无效令牌。 令牌示例:

<dab5efc5 42af7327 c2541cb1 06d023c5 2bd4ac44 7a78c8c9 47ea33a6 76f3ffd3>

但是对于在GCM中注册,这个令牌是可以的,为什么?

可能存在类似问题 - https://dev59.com/W47ea4cB1Zd3GeqPGM9B 希望这也能解决你的问题。它表明你将priority属性设置为高。 - adjuremods
1
有没有解决这个问题的方法?我遇到了相同的症状,这里建议的优先解决方案不起作用。 - Yossi Shmueli
1个回答

1
我的问题原因是缺少配置文件。
[编辑以详细说明此问题]:
看起来这是设备上应用程序的配置问题。 为了再次使推送和后台通知正常工作:
- 从测试设备中删除应用程序 - 在XCode中执行“清除” - 在XCode中执行“构建” - 将应用程序重新安装到设备上

你能详细说明一下吗? - Niels Abildgaard

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接