我安装了通行证。当安装在注册到我的服务器的设备上时,设备 ID 也会注册到 Urban Airship 服务。
到目前为止,一切都很好。
当我尝试从城市飞艇的仪表板发送推送消息,或者冰壶,或者让服务器发送推送时,设备永远不会收到它。推送 passkit 更新时,我有什么特别需要考虑的吗?
我安装了通行证。当安装在注册到我的服务器的设备上时,设备 ID 也会注册到 Urban Airship 服务。
到目前为止,一切都很好。
当我尝试从城市飞艇的仪表板发送推送消息,或者冰壶,或者让服务器发送推送时,设备永远不会收到它。推送 passkit 更新时,我有什么特别需要考虑的吗?
经过大量的修补,我得到了这个工作。解决方案并不直观:
确保您在 Urban Airship 上创建的“应用程序”正在推送到 Apple 的生产服务器。Passbook 将无法识别向开发服务器推送的存折(您只能在创建应用程序时执行此操作 - 之后无法修改它)。
确保上传用于签署 Pass ID 的证书,而不是用于标准推送通知的证书。这很重要,因为证书中嵌入了 PassID。
不管苹果怎么说,你需要在有效载荷中包含一些东西。据我所知,这是必要的,因为 Urban Airship 不会推送空的有效载荷。有效载荷的内容无关紧要。该设备只关心它得到了什么,所以它知道需要更新。例如,这有效(python):
airship = urbanairship.Airship(_UrbanAirshipPassbookKey, _UrbanAirshipPassbookMasterSecret) airship.push({'aps': {'alert': 'Go.'}}, device_tokens=tokens)
Urban Airship 有望在未来改变这种状况。
当我对后端有更多的控制权时,我想通了。
Server response was malformed (Wrong type object for key lastUpdated in response dictionary. Expected NSString but found __NSCFNumber.)
所以现在它适用于城市飞艇