我创建了一个传递,可以将设备注册到我的服务器。我还通过更改一些内容并在传递表中插入新的传递行来更新此传递。但为什么在控制台,最后更新(null)?这是我从控制台得到的:
Apr 6 10:30:29 CamMobs-iPod4 passd[21] <Warning>: Get serial #s task (for device b6511c0dd47d04da449ce427b27fea74, pass type pass.cam-mob.passbookpasstest, last updated (null);
with web service url http://192.168.1.202:8888/passesWebserver/) got response with code 200
答案 0 :(得分:0)
每当在设备的Passbook库中接受或替换.pkpass包时,Passbook将使用最后更新的属性标记该传递。
此属性通常由网络服务器在第一次下载传递时发送的Last-Modified
标头设置,并且您的网络服务会在每次响应“Get Latest Version of a Pass”响应时发送。
Passbook还使用serialNumbers
的“Getting the Serial Numbers for Passes Associated with a Device”方法轮询您的网络服务,并使用deviceLibraryIdentifier
和passTypeIdentifier
作为条件。
“Getting the Serial Numbers for Passes Associated with a Device”响应应包含标记lastUpdated
,指示上次更改此查询的结果的时间(即最后一次使用passTypeIdentifier
注册的通道的时间最后更新了此deviceLibraryIdentifier
。
但是,Passbook第一次发送“Getting the Serial Numbers for Passes Associated with a Device”时,它不会收到lastUpdated
标记,这就是它在您的控制台日志中显示null
的原因。此外,发送lastUpdated
标记是可选的,因此如果它不存在,或者未正确发送,那么您将始终看到last updated (null)
此请求。
您可以随意使用自己喜欢的任何内容作为lastUpdated
代码。最简单的解决方案是使用unix时间戳,因为不需要使用日期格式。