我当前正在阅读:https://developer.apple.com/library/content/documentation/UserExperience/Conceptual/PassKit_PG/Updating.html#//apple_ref/doc/uid/TP40012195-CH5-SW1

它说设备注册了通行证的推送通知,但这仅在最初安装通行证之后发生(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.
  ###############


因此,似乎您不应该在注册电话之外将通行证下载到设备上?还是我读错了?

最佳答案

如果您的服务器已提供Pass软件包,则最好的方法是使用PKPass(data:error:),其中data是您自己的应用程序中下载的Pass文件。这样,您可以将其创建集中在一个地方,从而最大程度地减少可能不匹配的信息。

之后,您可以使用两种方法在设备上安装Passes:


PKAddPassesViewController(passes:)如果您想向用户提供视觉反馈,或者
PKPassLibrary.addPasses(_:withCompletionHandler:)(如果要自动安装)。

10-07 19:56