它表示设备注册了传递的推送通知,但这只发生在最初安装传递之后(并且它由AppleWallet自动发生)。
我的问题是,如何向用户提供初始定制的通行证? 例如:用户打开我的应用程序,点击“添加传递给钱包”按钮。它是否应该在服务器端生成特定于该用户的传递并安装它,或者它是否具有通用字段的本地传递,安装它并且钱包将自动下载最新传递?
我问这一切是因为在Apple的服务器参考(用Ruby编写)中,他们有:
################
# FOR DEVELOPMENT PURPOSES ONLY
# This endpoint is to allow developers to download a pass.
#
# NOTE: This endpoint is not part of the offical API and does not implement
# authentication/authorization controls and should only be used for development.
# Please protect your user's data.
#
get "/pass.pkpass" do
redirect "/sample.pkpass"
end
get "/:serial_number.pkpass" do
# Retrieve pass file
pass_output_path = File.dirname(File.expand_path(__FILE__)) + "/data/passes/#{params[:serial_number]}.pkpass"
# Send the pass file
send_file(pass_output_path, :type => :pkpass)
end
###
# End of development only endpoint.
###############
所以好像你不应该在注册电话中将传票下载到设备上?或者我读错了吗?
答案 0 :(得分:1)
如果您的服务器已经提供了Pass软件包,那么执行此操作的最佳方法是使用PKPass(data:error:)
,其中data
是在您自己的应用程序中下载的Pass文件。这样,您只需将其创建集中在一个位置,从而最大限度地减少可能不匹配的信息。
之后,您可以使用两种方法在设备上安装Passes:
PKAddPassesViewController(passes:)
如果您想向用户提供视觉反馈,或PKPassLibrary.addPasses(_:withCompletionHandler:)
如果您想自动安装它们。