我发现这篇文章对于设置非常有帮助,但我还没有看到推送通知在iPhone上安装了传递。
Passkit-push-notification-not-working-with-urban-airship
我在城市飞艇的网站上设置我的应用程序,推动Apple的开发服务器。我在手机上安装了一个通行证并运行了以下命令,我在上面的帖子中找到了这些命令:
airship = urbanairship.Airship(_UrbanAirshipPassbookKey, _UrbanAirshipPassbookMasterSecret)
airship.push({'aps': {'alert': 'Go.'}}, device_tokens=tokens)
然后我在Xcode的iPhone控制台窗口中看到了这个推送的确认。
Received push for topic pass.xxx.xxx: {
...
aps = {
banner = "Hello";
};
然后iPhone将其更新标记及其传递类型ID和设备库ID发送回Web服务。此时,Web服务应该发回已更改的传递列表。但是,我反而看到以下错误消息:
<Warning>: Web service error for pass.mypasstype.id (http://192.168.30.209:8000): Response to 'What changed?' request included 1 serial numbers but the lastUpdated tag (2013-02-11T17:25:25) remained the same.
有谁知道为什么会这样?我是否需要实际修改传递中的字段以使推送通知显示在设备上?
答案 0 :(得分:2)
您的问题的简短答案是肯定的,您需要修改通行证中的字段以获取推送通知。这是因为,与app推送不同,Passbook推送有效负载不会确定通知的内容。
Passbook推送消息的目的是警告设备Web服务具有更新内容的新传递。警报文本仅由新传递内容确定。推送有效负载中的任何内容都将被忽略。 Apple建议a push notification with an empty JSON dictionary。
发送推送后,会触发以下链:
passTypeIdentifier
和lastUpadted
代码passTypeIdentifier
标记lastUpdated
的所有通行证的序列表列表
changeMessage
键中提供的通知:
changeMessage
包含%@ string 如果%@ string不存在,则传递将显示通知Pass Changed
。如果更改的值不存在changeMessage
密钥,则不会显示任何消息。