PassKit v Xamarin. iOSPassKit in Xamarin.iOS

Aplikace Peněženka pro iOS umožňuje uživatelům ukládat digitální průchody na jejich zařízeních.The iOS Wallet app allows users to store digital passes on their devices. Tyto průchody vygeneruje obchodníci a odesílají je zákazníkovi prostřednictvím e-mailu, adres URL nebo prostřednictvím vlastní aplikace pro iOS v obchodní organizaci.These passes are generated by merchants and sent to the customer via email, URLs, or through the merchant's own iOS app. Tyto průchody můžou představovat různé věci, od lístků z filmů až po věrnostní karty až po odeslání do nástupu do práce.These passes can represent various things, from movie tickets to loyalty cards to boarding passes. PassKit Framework umožňuje vývojářům pracovat s průchody prostřednictvím kódu programu.The PassKit framework allows developers to interact with passes programmatically.

Tento dokument zavádí peněženku a používá rozhraní API PassKit s Xamarin. iOS.This document introduces Wallet and using the PassKit API with Xamarin.iOS.

Peněženka uchovává a uspořádává všechny průchody na telefonu.The Wallet stores and organizes all the passes on a phone

PožadavkyRequirements

Funkce PassKit popsané v tomto dokumentu vyžadují iOS 6 a Xcode 4,5 společně s Xamarin. iOS 6,0.The PassKit features discussed in this document require iOS 6 and Xcode 4.5, along with Xamarin.iOS 6.0.

ÚvodIntroduction

Klíčovým problémem, který PassKit řeší, je distribuce a Správa čárových kódů.The key problem that PassKit solves is the distribution and management of barcodes. Některé reálné příklady, jak jsou aktuálně použity čárové kódy, zahrnují:Some real-world examples of how barcodes are currently used include:

  • Nákup lístků videa online – zákazníci obvykle e-mailem čárový kód, který představuje své lístky.Buying movie tickets online – Customers are typically emailed a barcode that represents their tickets. Tento čárový kód je vytištěn a převeden na kino, aby bylo možné záznam vyhledat.This barcode is printed and taken to the cinema to be scanned for entry.
  • Věrnostní karty – zákazníci mají v kapesním nebo peněženkě různé karty specifické pro obchod, které umožňují zobrazení a kontrolu při nákupu zboží.Loyalty cards – Customers carry a number of different store-specific cards in their wallet or purse, for display and scanning when they purchase goods.
  • - Kupóny jsou distribuovány prostřednictvím e-mailu, jako tisknutelné webové stránky, prostřednictvím letterboxes a jako čárových kódů v novinách a časopisech.Coupons – Coupons are distributed via email, as printable web pages, through letterboxes and as barcodes in newspapers and magazines. Zákazníci je získají do obchodu pro kontrolu, aby získali zboží, služby nebo slevy v rámci vracení.Customers bring them to a store for scanning, to receive goods, services or discounts in return.
  • Úspěšné zprovoznění – podobně jako při nákupu lístku filmů.Boarding passes – Similar to buying a movie ticket.

PassKit nabízí alternativu pro každý z těchto scénářů:PassKit offers an alternative for each of these scenarios:

  • Lístky filmů – po nákupu přidá zákazník předávací lístek události (prostřednictvím e-mailu nebo odkazu na web).Movie tickets – After purchase, the customer adds an event ticket pass (via email or a website link). V době, kdy se ke filmovým přístupům dostanete, se na zamykací obrazovce jako připomenutí automaticky zobrazí a při příjezdu na kino se tento průchod snadno načte a zobrazí v kapesním počítači pro skenování.As the time for the movie approaches, the pass will automatically appear on the lock-screen as a reminder, and on arrival at the cinema the pass is easily retrieved and displayed in Wallet for scanning.
  • Věrnostní karty – místo (nebo kromě), které poskytují fyzickou kartu, můžou obchody vydávat (prostřednictvím e-mailu nebo po přihlášení k webu), které karta obchodu splňuje.Loyalty cards – Rather than (or in addition to) providing a physical card, stores can issue (via email or after a website login) a Store Card Pass. Úložiště může poskytovat další funkce, jako je například aktualizace zůstatku účtu na předávacích místech prostřednictvím nabízených oznámení a používání geografických umístění. když se zákazník blíží umístění obchodu, může se průchozí obrazovka automaticky zobrazit na zamykací obrazovce.The store can provide additional features such as updating the balance of the account on the pass via push notifications, and using geolocation services the pass could automatically appear on the lock-screen when the customer is near a store location.
  • Kokupóny – kupóny se dají snadno vygenerovat s jedinečnými charakteristikami, které vám pomůžou sledovat a distribuovat prostřednictvím e-mailu nebo odkazů na weby.Coupons – Coupon passes can easily be generated with unique characteristics to help with tracking, and distributed via email or website links. Pokud je uživatel poblíž konkrétního umístění nebo na daném datu (například když se blíží datum vypršení platnosti), stažený kupón se může automaticky zobrazit na zamykací obrazovce.Downloaded coupons can automatically appear on the lock-screen when the user is near a specific location, and/or on a given date (such as when the expiry date is approaching). Vzhledem k tomu, že kokupóny jsou uloženy na telefonu uživatele, jsou vždy užitečné a nemusejí být neuložené.Because the coupons are stored on the user’s phone, they are always handy and do not get misplaced. Kokupóny můžou zákazníkům povzbudit, aby si stáhli doprovodné aplikace, protože odkazy na App Store můžou být do průchodu začlenit a zvýšily zapojení se zákazníkem.Coupons might encourage customers to download Companion Apps because App Store links can be incorporated into the Pass, increasing engagement with the customer.
  • Výzvy k zprovoznění – po online procesu vrácení se změnami může zákazník obdržet předávací zprávu prostřednictvím e-mailu nebo odkazu.Boarding passes – After an online check-in process, the customer would receive their boarding pass via email or a link. Doprovodná aplikace poskytovaná poskytovatelem přenosu by mohla zahrnovat proces vrácení se změnami a také umožňuje zákazníkovi provádět další funkce, jako je například volba jejich sedadla nebo moučky.A Companion App provided by the transport provider could include the check-in process, and also allow the customer to perform additional functions like choosing their seat or meal. Poskytovatel přenosu může pomocí nabízených oznámení aktualizovat Pass, pokud je přenos zpožděný nebo zrušený.The transport provider can use push notifications to update the pass if transport is delayed or canceled. Vzhledem k tomu, že se doba nástupu do seznamu blíží, zobrazí se na zamykací obrazovce jako připomenutí a poskytne rychlý přístup k průchodu.As the boarding time approaches the pass will appear on the lock-screen as a reminder and to provide quick access to the Pass.

V jádru PassKit poskytuje jednoduchý a pohodlný způsob, jak ukládat a zobrazovat čárové kódy na zařízení s iOS.At its core, PassKit provides a simple and convenient way to store and display barcodes on your iOS device. S další integrací na zamykací obrazovce pro dobu a umístění, nabízená oznámení a integrace doprovodné aplikace nabízí základ pro velmi sofistikované prodeje, lístky a fakturační služby.With the additional time and location lock-screen integration, push notifications and Companion Application integrate it offers a foundation for very sophisticated sales, ticketing and billing services.

Ekosystém PassKitPassKit Ecosystem

PassKit není pouze rozhraní API v rámci CocoaTouch, ale je součástí většího ekosystému aplikací, dat a služeb, které usnadňují bezpečné sdílení a správu čárových kódů a dalších dat.PassKit is not just an API within CocoaTouch, rather it is part of a larger ecosystem of apps, data and services that facilitate the secure sharing and management of barcodes and other data. Tento diagram vysoké úrovně zobrazuje různé entity, které mohou být součástí vytváření a používání průchodů:This high-level diagram shows the different entities that can be involved in creating and using passes:

Tento diagram vysoké úrovně zobrazuje entity, které se podílejí na vytváření a používání průchodů.This high level diagram shows the entities involved in creating and using passes

Každá část ekosystému má jasně definovanou roli:Each piece of the ecosystem has a clearly-defined role:

  • Peněženka – integrovaná aplikace iOS založená na společnosti Apple, která ukládá a zobrazuje průchody.Wallet – Apple’s built-in iOS app that stores and displays passes. Toto je jediné místo, které se projde pro použití v reálném světě (zobrazí se čárový kód, spolu se všemi lokalizovanými daty v průchodu).This is the only place that passes are rendered for use in the real world (ie the barcode is displayed, along with all the localized data in the pass).
  • Doprovodné aplikace – aplikace pro iOS 6 sestavené poskytovateli předávají, aby rozšířily funkce těch předávaných, jako je například přidání hodnoty na kartu úložiště, změna pracovní stanice na průchozí průchod nebo jiné funkce specifické pro firmy.Companion Apps – iOS 6 apps built by pass providers to extend the functionality of the passes they issue, such as adding value to a store card, changing the seat on a boarding pass or other business-specific function. Doprovodné aplikace nejsou vyžadovány, aby bylo možné využít Pass.Companion Apps are not required for a pass to be useful.
  • Váš server – zabezpečený server, na kterém se dají vygenerovat a podepsat pro distribuci.Your server – A secure server where passes can be generated and signed for distribution. Vaše doprovodná aplikace se může připojit k vašemu serveru, aby vygenerovala nové průchody nebo vyžádala aktualizace stávajících průchodů.Your Companion App may connect to your server to generate new passes or request updates to existing passes. Volitelně můžete implementovat rozhraní API webové služby, které bude peněženka při volání metody Update passs.You may optionally implement the web service API that Wallet would call to update passes.
  • Servery APNs – váš server má možnost oznamovat kapesní aktualizace na daném zařízení pomocí služby APN.APNS Servers – Your server has the ability to notify Wallet of updates to a pass on a given device using APNS. Odešlete oznámení do peněženky, které vám pak požádejte o změnu na server.Push a notification to Wallet which will then contact your server for details of the change. Doprovodné aplikace nepotřebují pro tuto funkci implementovat služby APNS (můžou naslouchat PKPassLibraryDidChangeNotification ).Companion apps do not need to implement APNS for this feature (they can listen to the PKPassLibraryDidChangeNotification ).
  • Inpass Apps – aplikace, které přímo nepracují s průchody (jako jsou doprovodné aplikace), ale které můžou zlepšit jejich nástroj tím, že budou rozpoznávat průchody a povolit jejich přidání do peněženky.Conduit Apps – Applications that don’t directly manipulate passes (like companion apps do), but which can improve their utility by recognizing passes and allowing them to be added to Wallet. E-mailové klienty, prohlížeče sociálních sítí a další aplikace pro agregaci dat můžou narazit na přílohy nebo odkazy.Mail clients, social network browsers and other data aggregation apps may all encounter attachments or links to passes.

Celý ekosystém vypadá jako složitý, takže je potřeba poznamenat, že některé komponenty jsou volitelné a mnohem jednodušší PassKit implementace.The entire ecosystem looks complex, so it’s worth noting that some components are optional and much simpler PassKit implementations are possible.

Co je to Pass?What is a Pass?

Pass je kolekce dat představujících lístek, kupón nebo kartu.A pass is a collection of data representing a ticket, coupon or card. Může být určeno pro jedno použití jednotlivými uživateli (a proto obsahuje podrobné údaje, jako je číslo letu a přidělení sedadel), nebo může mít více než jeden token pro použití, který může sdílet libovolný počet uživatelů (například zlevněný kupón).It may be intended for a single use by an individual (and therefore contain details such as a flight number and seat allocation) or it may a multiple use token that can be shared by any number of users (such as a discount coupon). Podrobný popis je k dispozici v dokumentu o předávacích souborech společnosti Apple.A detailed description is available in Apple’s About Pass Files document.

TypyTypes

V současné době pět podporovaných typů, které je možné v aplikaci peněženky odlišit rozložením a horním okrajem průchodu:Currently five supported types, which can be distinguished in the Wallet app by the layout and top edge of the pass:

  • Lístek události – malá Vystřižení Semicircular.Event Ticket – small semicircular cutout.
  • Položení na desku – lze zadat ikonu určenou pro přenos (např.).Boarding Pass – notches in side, transport-specific icon can be specified (eg. autobus, vlak, letadlo).bus, train, airplane).
  • Karta úložiště – zaokrouhleno nahoru, jako je kreditní nebo debetní karta.Store Card – rounded top, like a credit or debit card.
  • Kupón – perforace podél horní částiCoupon – perforated along the top.
  • Obecné – stejné jako karta úložiště, zaokrouhleno nahoru.Generic – same as Store Card, rounded top.

Na tomto snímku obrazovky se zobrazí pět typů průchodů (v uvedeném pořadí: kupón, obecné, karta úložiště, průchod na desce a lístek události):The five pass types are shown in this screenshot (in order: coupon, generic, store card, boarding pass and event ticket):

Na tomto snímku obrazovky se zobrazí pět typů průchodů.The five pass types are shown in this screenshot

Struktura souborůFile Structure

Průchozí soubor je ve skutečnosti archiv ZIP s příponou . pkpass , který obsahuje některé konkrétní soubory JSON (povinné), různé soubory obrázků (volitelné) i lokalizované řetězce (také volitelné).A pass file is actually a ZIP archive with a .pkpass extension, containing some specific JSON files (required), a variety of image files (optional) as well as localized strings (also optional).

  • pass.json – povinné.pass.json – required. Obsahuje všechny informace pro průchod.Contains all the information for the pass.
  • manifest.json – povinné.manifest.json – required. Obsahuje hodnoty hash SHA1 pro každý soubor v průchodu s výjimkou souboru signatury a tohoto souboru (manifest.json).Contains SHA1 hashes for each file in the pass except the signature file and this file (manifest.json).
  • Signatura – povinné.signature – required. Vytvoří se podpisem manifest.json souboru s certifikátem vygenerovaným na portálu zřizování iOS.Created by signing the manifest.json file with the certificate generated in the iOS Provisioning Portal.
  • logo.png – volitelné.logo.png – optional.
  • background.png – volitelné.background.png – optional.
  • icon.png – volitelné.icon.png – optional.
  • Lokalizovatelné soubory řetězců – volitelné.Localizable strings files – optional.

Níže je uvedena adresářová struktura předávacího souboru (Jedná se o obsah archivu ZIP):Directory structure of a pass file is shown below (this is the contents of the ZIP archive):

Tady se zobrazí adresářová struktura průchozího souboru.Directory structure of a pass file is shown here

pass.jsnapass.json

JSON je formát, protože průchody jsou obvykle vytvořeny na serveru – to znamená, že kód generace je na serveru Platform-nezávislá.JSON is the format because passes are typically created on a server – it means that the generation code is platform-agnostic on the server. Mezi tři klíčové informace v každém průchodu patří:The three key pieces of information in every pass are:

  • teamIdentifier – tato propojení vygenerujete do svého účtu App Storu.teamIdentifier – This links all passes you generate to your App Store account. Tato hodnota je viditelná na portálu zřizování iOS.This value is visible in the iOS Provisioning Portal.
  • passTypeIdentifier – Zaregistrujte se na portálu zřizování, abyste mohli seskupit průchody společně (Pokud vytvoříte více než jeden typ).passTypeIdentifier – Register in Provisioning Portal to group passes together (if you produce more than one type). Kavárna například může vytvořit typ průchodu na kartě úložiště, aby jejich zákazníci mohli získat věrnostní kredity, ale také samostatný kupón typu pro vytvoření a distribuci Slevových kupónů.For example, a coffee shop might create a store card pass type to allow their customers to earn loyalty credits, but also a separate coupon pass type to create and distribute discount coupons. Stejné kavárny můžou dokonce uchovávat živé hudební události a předávání lístků událostí.That same coffee shop might even hold live music events and issue Event Ticket passes for those.
  • sériové – jedinečný řetězec v rámci této passTypeidentifier .serialNumber – A unique string within this passTypeidentifier . Hodnota je neprůhledná na kapesní, ale je důležitá pro sledování specifických průchodů při komunikaci se serverem.The value is opaque to Wallet, but is important for tracking specific passes when communicating with your server.

V každém průchodu je velký počet dalších klíčů JSON, což je příklad, který vidíte níže:There is a large number of other JSON keys in each Pass, an example of which is shown below:

{
   "passTypeIdentifier":"com.xamarin.passkitdoc.banana",  //Type Identifier (iOS Provisioning Portal)
   "formatVersion":1,                                     //Always 1 (for now)
   "organizationName":"Xamarin",                          //The name which appears on push notifications
   "serialNumber":"12345436XYZ",                          //A number for you to identify this pass
   "teamIdentifier":"XXXAAA1234",                         //Your Team ID
   "description":"Xamarin Demo",                          //
   "foregroundColor":"rgb(54,80,255)",                    //color of the data text (note the syntax)
   "backgroundColor":"rgb(209,255,247)",                  //color of the background
   "labelColor":"rgb(255,15,15)",                         //color of label text and icons
   "logoText":"Banana ",                                  //Text that appears next to logo on top
   "barcode":{                                            //Specification of the barcode (optional)
      "format":"PKBarcodeFormatQR",                       //Format can be QR, Text, Aztec, PDF417
      "message":"FREE-BANANA",                            //What to encode in barcode
      "messageEncoding":"iso-8859-1"                      //Encoding of the message
   },
   "relevantDate":"2012-09-15T15:15Z",                    //When to show pass on screen. ISO8601 formatted.
  /* The following fields are specific to which type of pass. The name of this object specifies the type, e.g., boardingPass below implies this is a boarding pass. Other options include storeCard, generic, coupon, and eventTicket */
   "boardingPass":{
/*headerFields, primaryFields, secondaryFields, and auxiliaryFields are arrays of field object. Each field has a key, label, and value*/
      "headerFields":[          //Header fields appear next to logoText
         {
            "key":"h1-label",   //Must be unique. Used by iOS apps to get the data.
            "label":"H1-label", //Label of the field
            "value":"H1"        //The actual data in the field
         },
         {
            "key":"h2-label",
            "label":"H2-label",
            "value":"H2"
         }
      ],
      "primaryFields":[       //Appearance differs based on pass type
         {
            "key":"p1-label",
            "label":"P1-label",
            "value":"P1"
         }
      ],
      "secondaryFields":[     //Typically appear below primaryFields
         {
            "key":"s1-label",
            "label":"S1-label",
            "value":"S1"
         }
      ],
      "auxiliaryFields":[    //Appear below secondary fields
         {
            "key":"a1-label",
            "label":"A1-label",
            "value":"A1"
         }
      ],
      "transitType":"PKTransitTypeAir"  //Only present in boradingPass type. Value can
                                        //Air, Bus, Boat, or Train. Impacts the picture
                                        //that shows in the middle of the pass.
   }
}

Čárové kódyBarcodes

Podporovány jsou pouze 2D formáty: PDF417, Aztec, QR.Only 2D formats are supported: PDF417, Aztec, QR. Deklarace Apple, které 1D čárové kódy nehodí ke skenování na Backlit obrazovce pro telefon.Apple claims that 1D barcodes are unsuited to scanning on a backlit phone screen.

Alternativní text zobrazený pod čárovým kódem je nepovinný – někteří obchodníci chtějí mít přístup ke čtení a psaní ručně.Alternate text displayed below the barcode is optional – some merchants want to be able to read/type manually.

Kódování ISO-8859-1 je nejběžnější. Zkontrolujte, které kódování používá skenovací systémy, které budou předány vaše průchody.ISO-8859-1 encoding is the most common, check which encoding is used by the scanning systems that will read your passes.

Relevanci (zamykací obrazovka)Relevancy (Lock Screen)

Existují dva typy dat, které mohou způsobit zobrazení průchodu na zamykací obrazovce:There are two types of data that can cause a pass to be displayed on the lock-screen:

UmístěníLocation

V průchodu lze zadat až 10 umístění, například obchody, které zákazník často navštívili, nebo umístění kino nebo letiště.Up to 10 locations can be specified in a Pass, eg stores that a customer frequently visits, or the location of a cinema or airport. Zákazník může tato umístění nastavovat prostřednictvím doprovodné aplikace nebo může určit jejich údaje z údajů o využití (Pokud se shromažďují s oprávněním zákazníka).A customer could set these locations via a Companion App or the provider could determine them from usage data (if collected with the customer’s permission).

Po zobrazení tohoto průchodu na zamykací obrazovce se vypočítává ochranná čárka tak, že když uživatel opustí oblast, která je z zamykací obrazovky skrytá.When the pass is displayed on the lock-screen, a fence is calculated so that when the user leaves the area the pass is hidden from the lock-screen. Poloměr je svázán s předáním stylu, aby nedocházelo k zneužití.The radius is tied to pass style to prevent abuse.

Datum a časDate and Time

V průchodu lze zadat pouze jedno datum a čas.Only one date/time can be specified in a Pass. Datum a čas je užitečné pro aktivaci připomenutí zamykací obrazovky pro průchody na základě a lístky událostí.The date and time is useful for triggering lock-screen reminders for boarding passes and event tickets.

Dá se aktualizovat prostřednictvím push nebo přes rozhraní PassKit API, aby bylo možné aktualizovat datum a čas v případě lístku s vícenásobným použitím (například lístku pro období do Theatre nebo Sport Complex).Can be updated via push or via PassKit API, so that the date/time could be updated in the case of a multiple-use ticket (such as a season ticket to a theatre or sporting complex).

LokalizaceLocalization

Překládání předávaných do více jazyků je podobné jako lokalizace aplikace pro iOS – vytvořit adresáře specifické pro jazyk s .lproj příponou a umístit lokalizované prvky dovnitř.Translating a pass into multiple languages is similar to localizing an iOS application – create language specific directories with the .lproj extension and place the localized elements inside. Překlady textu by měly být zadány do pass.strings souboru, zatímco lokalizované obrázky by měly mít stejný název jako obrázek, který nahradí v kořenu Pass.Text translations should be entered into a pass.strings file, while localized images should have the same name as the image they replace in the Pass root.

ZabezpečeníSecurity

Průchody jsou podepsané privátním certifikátem, který vygenerujete na portálu zřizování iOS.Passes are signed with a private certificate that you generate in the iOS Provisioning Portal. Postup pro podepsání Pass:The steps to sign the pass are:

  1. Vypočítá hodnotu hash SHA1 pro každý soubor v adresáři Pass (nezahrnuje manifest.json signature soubor ani, ani to, co by v této fázi nemělo existovat).Calculate a SHA1 hash for each file in the pass directory (do not include the manifest.json or signature file, neither of which should exist at this stage anyway).
  2. Zapište manifest.json jako seznam klíč/hodnota JSON každého názvu souboru s jeho hodnotou hash.Write manifest.json as a JSON key/value list of each filename with its hash.
  3. Použijte certifikát k podepsání manifest.json souboru a zápis výsledku do souboru s názvem signature .Use the certificate to sign the manifest.json file and write the result to a file called signature .
  4. Dejte vše nahoru a poskytněte výslednému souboru .pkpass příponu souboru.ZIP the everything up and give the resulting file a .pkpass file extension.

Vzhledem k tomu, že váš privátní klíč je vyžadován k podpisu průchodu, tento proces by měl být proveden pouze na zabezpečeném serveru, který ovládáte.Because your private key is required to sign the pass, this process should only be done on a secure server that you control. Nedistribuujte klíče, abyste se vyzkoušeli a vygenerovali průchody v aplikaci.DO NOT distribute your keys to try and generate passes in an application.

Konfigurace a nastaveníConfiguration and Setup

Tato část obsahuje pokyny, které vám pomůžou nastavit podrobnosti zřizování a vytvořit první průchod.This section contains instructions to help setup your provisioning details and create your first pass.

Zřizování PassKitProvisioning PassKit

Aby bylo možné předat do App Storu, musí být propojený s vývojářským účtem.In order for a pass to enter the App Store, it must be linked to a developer account. K tomu je potřeba provést dva kroky:This requires two steps:

  1. Průchod musí být zaregistrován pomocí jedinečného identifikátoru, který se nazývá ID typu Pass.The pass must be registered using a unique identifier, called the Pass Type ID.
  2. Pro podepsání průchodu digitálním podpisem vývojáře musí být vygenerován platný certifikát.A valid Certificate must be generated to sign the pass with the developer's digital signature.

Chcete-li vytvořit ID typu Pass, postupujte následovně.To create a Pass Type ID do the following.

Vytvořit ID typu PassCreate a Pass Type ID

Prvním krokem je nastavení ID typu průchodu pro každý jiný typ předávání, který se má podporovat.The first step is to set up a Pass Type ID for each different type of pass to be supported. Identifikátor Pass (nebo typu Pass) vytvoří pro průchod jedinečný identifikátor.The Pass ID (or Pass Type identifier) creates a unique identifier for the Pass. Toto ID použijeme k propojení průchodu s vaším vývojářským účtem s použitím certifikátu.We will use this ID to link the pass with your developer account using a Certificate.

  1. V části certifikáty, identifikátory a profily na portálu zřizování iOSpřejděte na identifikátory a vyberte předat ID typu .In the Certificates, Identifiers, and Profiles section of the iOS Provisioning Portal, navigate to Identifiers and select Pass Type IDs . Pak vyberte + tlačítko pro vytvoření nového typu průchodu:  vytvořit nový typ průchoduThen select the + button to create a new pass type: Create a new pass type

  2. Zadejte Popis (název) a identifikátor (jedinečný řetězec) pro průchod.Provide a Description (name) and Identifier (unique string) for the Pass. Všimněte si, že všechny identifikátory předávacího typu musí začínat řetězcem pass. v tomto příkladu, který používáme pass.com.xamarin.coupon.banana :  zadání popisu a identifikátoru .Note that all Pass Type IDs must begin with the string pass. In this example we use pass.com.xamarin.coupon.banana : Provide a Description and Identifier

  3. Potvrďte ID průchodu kliknutím na tlačítko Registrovat .Confirm the Pass ID by pressing the Register button.

Vygenerovat certifikátGenerate A Certificate

Chcete-li vytvořit nový certifikát pro toto ID typu průchodu, postupujte následovně:To create a new Certificate for this Pass Type ID, do the following:

  1. V seznamu vyberte nově vytvořené ID průchodu a klikněte na Upravit :  ze seznamu vyberte nové ID Pass .Select the newly created Pass ID from the list, and click Edit : Select the new Pass ID from the list

    Pak vyberte vytvořit certifikát...Then, select Create Certificate… ::

    Vybrat vytvořit certifikátSelect Create Certificate

  2. Podle pokynů vytvořte žádost o podepsání certifikátu (CSR).Follow the steps to create a Certificate Signing Request (CSR).

  3. Stiskněte tlačítko pokračovat na portálu pro vývojáře a odešlete CSR pro vygenerování certifikátu.Press the Continue button on the developer portal and upload the CSR to generate your certificate.

  4. Stáhněte si certifikát a dvakrát na něj klikněte a nainstalujte ho do řetězce klíčů.Download the certificate and double-click on it to install it in your keychain.

Teď, když jsme vytvořili certifikát pro toto ID typu průchodu, v další části se dozvíte, jak vytvořit Pass ručně.Now that we have created a certificate for this Pass Type ID, the next section describes how to build a pass manually.

Další informace o zřizování pro peněženku najdete v příručce work with Capabilities .For more information on Provisioning for Wallet, refer to the Working with Capabilities guide.

Ruční vytvoření průchoduCreate a Pass Manually

Teď, když jsme vytvořili typ průchodu, můžeme ručně vytvořit průchozí test na simulátoru nebo zařízení.Now that we’ve created the Pass Type we can manually craft a pass to test on the simulator or a device. Postup vytvoření průchodu je následující:The steps to create a pass are:

  • Vytvořte adresář, který bude obsahovat předávací soubory.Create a directory to contain the pass files.
  • Vytvoří pass.jspro soubor, který obsahuje všechna požadovaná data.Create a pass.json file that contains all the required data.
  • Zahrnout obrázky do složky (Pokud je potřeba)Include images in folder (if required).
  • Vypočítejte hodnoty hash SHA1 pro všechny soubory ve složce a zapište do manifest.js.Calculate SHA1 hashes for every file in the folder, and write to manifest.json.
  • Přihlaste se manifest.jsse staženým souborem certifikátu. P12.Sign manifest.json with the downloaded certificate .p12 file.
  • PSČ adresáře a přejmenovat s příponou. pkpass.ZIP the directory’s contents and rename with .pkpass extension.

V ukázkovém kódu tohoto článku jsou některé zdrojové soubory, které se dají použít k vygenerování Pass.There are some source files in the sample code for this article that can be used to generate a pass. Použijte soubory v CouponBanana.raw adresáři adresáře CreateAPassManually.Use the files in the CouponBanana.raw directory of the CreateAPassManually directory. K dispozici jsou následující soubory:The following files are present:

Tyto soubory jsou k dispoziciThese files are present

Otevřete pass.jsa upravte kód JSON.Open pass.json and edit the JSON. Musíte aspoň aktualizovat passTypeIdentifier a teamIdentifer tak, aby odpovídaly vašemu účtu Apple Developer.You must at least update the passTypeIdentifier and teamIdentifer to match your Apple Developer account.

"passTypeIdentifier" : "pass.com.xamarin.coupon.banana",
"teamIdentifier" : "?????????",

Pak je nutné vypočítat hodnoty hash pro každý soubor a vytvořit manifest.json soubor.You must then calculate the hashes for each file and create the manifest.json file. Po skončení bude vypadat přibližně takto:It will look something like this when you’re done:

{
  "icon@2x.png" : "30806547dcc6ee084a90210e2dc042d5d7d92a41",
  "icon.png" : "87e9ffb203beb2cce5de76113f8e9503aeab6ecc",
  "pass.json" : "c83cd1441c17ecc6c5911bae530d54500f57d9eb",
  "logo.png" : "b3cd8a488b0674ef4e7d941d5edbb4b5b0e6823f",
  "logo@2x.png" : "3ccd214765507f9eab7244acc54cc4ac733baf87"
}

Další signatura musí být vygenerována pro tento soubor pomocí certifikátu (souboru. P12), který byl vygenerován pro tento identifikátor typu Pass.Next a signature must be generated for this file using the certificate (.p12 file) that was generated for this Pass Type ID.

Přihlášení na MacuSigning On a Mac

Stáhněte si materiály podpory pro pracovní peněženku z webu Apple downloads .Download the Wallet Seed Support Materials from the Apple Downloads site. Použijte signpass Nástroj k převedení složky na Pass (tím se také vyhodnotí hodnoty hash SHA1 a zip výstup do souboru. pkpass).Use the signpass tool to turn your folder into a pass (this will also calculate the SHA1 hashes and ZIP the output into a .pkpass file).

TestováníTesting

Pokud byste chtěli prostudovat výstup těchto nástrojů (nastavením filename na. zip a pak ho otevřít), zobrazí se následující soubory (Všimněte si přidání manifest.json signature souborů a):If you were to examine the output of these tools (by setting the filename to .zip and then opening it), you would see the following files (note the addition of the manifest.json and signature files):

Prozkoumání výstupu těchto nástrojůExamining the output of these tools

Po podepsání, zip a přejmenování souboru (např.Once you have signed, ZIPped and renamed the file (eg. na BananaCoupon.pkpass ) ho můžete přetáhnout do simulátoru a otestovat ho nebo ho poslat sami, aby se načetl na reálné zařízení.to BananaCoupon.pkpass) you can drag it into the simulator to test, or email it to yourself to retrieve on a real device. Měla by se zobrazit obrazovka pro Přidání průchodu, například:You should see a screen to Add the pass, like this:

Přidat průchozí obrazovkuAdd the pass screen

Obvykle by byl proces na serveru automatizovaný, ale ruční vytvoření by mohlo být možnost pro malé firmy, které vytvářejí jenom kokupóny, které nevyžadují podporu back-endu serveru.Normally that process would be automated on a server, however manual pass creation might be an option for small businesses that are only creating coupons that do not require the support of a back-end server.

WalletWallet

Kapesní je střední část ekosystému PassKit.Wallet is the central piece of the PassKit ecosystem. Na tomto snímku obrazovky vidíte prázdné peněženku a jak vypadá seznam úspěšného a individuálních průchodů:This screenshot shows the empty Wallet, and how the pass list and individual passes look:

Na tomto snímku obrazovky se zobrazuje prázdná Peněženka a vzhled seznamu úspěchů a jednotlivých průchodů.This screenshot shows the empty Wallet, and how the pass list and individual passes look

Mezi funkce peněženky patří:Features of Wallet include:

  • Je to jediné místo, které se předá pomocí jejich čárového kódu ke skenování.It is the only place that passes are rendered with their barcode for scanning.
  • Uživatel může změnit nastavení aktualizací.User can change the settings for updates. Pokud je povoleno, nabízená oznámení můžou aktivovat aktualizace dat v Pass.If enabled, push notifications can trigger updates to the data in the Pass.
  • Uživatel může povolit nebo zakázat integraci zamykací obrazovky.User can enable or disable lock-screen integration. Pokud je tato možnost povolená, umožňuje automatické zobrazení na zamykací obrazovce na základě relevantní doby a dat umístění vložené do průchodu.If enabled, this allows the pass to automatically appear on their lock screen, based on relevant time and location data embedded in the pass.
  • Reverzní strana Pass podporuje obnovení po obnovení, pokud je adresa URL webu zadána v metodě Pass JSON.The reverse side of the pass supports pull-to-refresh, if a web-server-URL is supplied in the pass JSON.
  • Doprovodné aplikace můžete otevřít (nebo stáhnout), pokud je ID aplikace zadáno v rámci předávacího formátu JSON.Companion Apps can be opened (or downloaded) if the app’s ID is supplied in the pass JSON.
  • Průchody je možné odstranit (s animací roztomilá Shredder).Passes can be deleted (with a cute shredding animation).

Přidání průchodů do kapesníhoAdding Passes into Wallet

Průchody je možné přidat k kapesnímu následujícím způsobem:Passes can be added to Wallet in the following ways:

  • Trubkové aplikace – tyto možnosti přímo nepracují s předáváním, jednoduše načtou soubory a prezentují uživatele s možností jejich přidání do peněženky.Conduit Apps – These do not manipulate passes directly, they simply load pass files and present the user with the option of adding them to Wallet.

  • Doprovodné aplikace – tyto aplikace jsou napsané poskytovateli pro distribuci průchodů a nabízejí další funkce pro jejich procházení nebo úpravy.Companion Apps – These are written by providers to distribute passes and offer additional functionality to browse or edit them. Aplikace Xamarin. iOS mají úplný přístup k rozhraní PassKit API k vytváření a manipulaci s průchody.Xamarin.iOS applications have complete access to the PassKit API to create and manipulate passes. Průchody je možné přidat do kapesního pole pomocí PKAddPassesViewController .Passes can then be added to Wallet using the PKAddPassesViewController. Tento postup je podrobněji popsán v části doprovodné aplikace v tomto dokumentu.This process is described in more detail in the Companion Applications section of this document.

Trubk – aplikaceConduit Applications

Aplikace trubky jsou zprostředkující aplikace, které by mohly obdržet předání jménem uživatele, a měly by být naprogramovány na rozpoznání jejich typu obsahu a poskytují funkce, které se mají přidat do kapesního počítače.Conduit applications are intermediate apps that might receive passes on behalf of a user, and should be programmed to recognize their content-type and provide functionality to add to the Wallet. Mezi příklady aplikací trubky patří:Examples of conduit apps include:

  • Mail – rozpoznává přílohu jako Pass.Mail – Recognizes attachment as a Pass.
  • Safari – při kliknutí na odkaz na adresu URL rozpozná typ Pass Content-Type.Safari – Recognizes the pass Content-Type when a pass URL link is clicked.
  • Další vlastní aplikace – libovolná aplikace, které přijímají přílohy nebo otevřené odkazy (klienti sociálních sítí, čtenáři pošty atd.).Other custom apps – Any app that receive attachments or open links (social media clients, mail readers, etc).

Na tomto snímku obrazovky se dozvíte, jak Pošta v iOS 6 rozpoznává přílohu Pass a (Pokud se jim dopustila) nabídky k jejímu Přidání do peněženky.This screenshot shows how Mail in iOS 6 recognizes a pass attachment and (when touched) offers to Add it to Wallet.

Tento snímek obrazovky ukazuje, jak pošta v iOS 6 rozpoznává přílohu pro předávání.This screenshot shows how Mail in iOS 6 recognizes a pass attachment

Na tomto snímku obrazovky se dozvíte, jak se v e-mailu dají přidat přílohy předat jako kapesníThis screenshot shows how Mail offers to add a pass attachment to Wallet

Pokud vytváříte aplikaci, která by mohla být pro průchody, je možné ji rozpoznat:If you are building an app that could be a conduit for passes, they can be recognized by:

  • Přípona souboru -. pkpassFile extension - .pkpass
  • Typ MIME -application/vnd. Apple. pkpassMIME Type - application/vnd.apple.pkpass
  • Identifikátor UTI – com. Apple. pkpassUTI – com.apple.pkpass

Základní operace aplikace trubky je načíst průchozí soubor a volat PassKit a PKAddPassesViewController dát uživateli možnost Přidat průchod do kapesního počítače.The basic operation of a conduit application is to retrieve the pass file and call PassKit’s PKAddPassesViewController to give the user the option to add the pass to their Wallet. Implementaci tohoto kontroleru zobrazení najdete v další části na doprovodnéch aplikacích.The implementation of this view controller is covered in the next section on Companion Applications.

Aplikace trubky není nutné zřídit pro konkrétní ID typu Pass stejným způsobem jako doprovodné aplikace.Conduit Applications do not need to be provisioned for a specific pass Type ID in the same way that Companion Applications do.

Doprovodné aplikaceCompanion Applications

Doprovodná aplikace poskytuje další funkce pro práci s průchody, včetně vytvoření Pass, aktualizace informací přidružených k průchodu a jiné správě průchodů přidružených k aplikaci.A companion application provides additional functionality for working with passes, including creating a Pass, updating information associated with a Pass and otherwise managing passes associated with the application.

Doprovodné aplikace by se neměly pokoušet duplikovat funkce peněženky.Companion applications should not attempt to duplicate the features of Wallet. Nejsou určeny k zobrazení průchodů ke skenování.They are not intended to display passes for scanning.

Tato část této části popisuje, jak vytvořit základní doprovodné aplikaci, která komunikuje s PassKit.This remainder of this section describes how to build a basic Companion App that interacts with PassKit.

ZřizováníProvisioning

Vzhledem k tomu, že je kapesní technologie úložiště, musí být aplikace zřízená samostatně a nemůže používat profil pro zřizování týmu nebo ID aplikace se zástupnými znaky.Because Wallet is a store technology, the application needs to be provisioned separately and cannot use Team Provisioning Profile or Wildcard App ID. Pokud chcete vytvořit jedinečné ID aplikace a zřizovací profil pro aplikaci peněženky, přečtěte si příručku práce s funkcemi .Refer to the Working with Capabilities guide to create a unique App ID and Provisioning Profile for the Wallet application.

EntitlementsEntitlements

Soubor oprávnění. plist by měl být součástí všech posledních projektů Xamarin. iOS.The Entitlements.plist file should be included in all recent Xamarin.iOS project. Pokud chcete přidat nový soubor. plist s oprávněním, postupujte podle kroků v příručce Working with nároks .To add a new Entitlements.plist file, follow the steps in the Working with Entitlements guide.

Chcete-li nastavit oprávnění, postupujte takto:To set entitlements do the following:

Dvojím kliknutím na soubor oprávnění. plist v oblast řešení otevřete Editor oprávnění. plist:Double-click on the Entitlements.plist file in the Solution Pad to open the Entitlements.plist editor:

Oprávnění Editor plst

V části peněženka vyberte možnost Povolit peněženku .Under the Wallet section, select the Enable Wallet option

Povolit nárok na peněženku

Výchozí možnost je pro vaši aplikaci, aby povolovala všechny typy průchodů.The default option is for your app to allow all pass types. Je však možné omezit aplikaci a povolit pouze podmnožinu typů týmových průchodů.However, it is possible to restrict your app and only allow a subset of team pass types. Pokud chcete povolit tuto možnost, vyberte možnost Povolit podmnožinu typů týmových Pass a zadejte identifikátor typu podmnožiny, kterou chcete povolit.To enable this select the Allow subset of team pass types and enter the pass type identifier of the subset that you wish to allow.

LaděníDebugging

Pokud máte potíže s nasazením aplikace, ověřte, zda používáte správný profil pro zřizování a zda Entitlements.plist je v možnostech podepisování sady pro iPhone vybraný jako soubor vlastního oprávnění .If you have problems deploying your application, check that you are using the correct Provisioning Profile and that the Entitlements.plist is selected as the Custom entitlements file in the iPhone Bundle Signing options.

Pokud k této chybě dochází při nasazování:If you experience this error when deploying:

Installation failed: Your code signing/provisioning profiles are not correctly configured (error: 0xe8008016)

pak pass-type-identifiers je pole nároků nesprávné (nebo neodpovídá zřizovacímu profilu).then the pass-type-identifiers entitlements array is incorrect (or does not match the Provisioning Profile). Ověřte správnost ID typu Pass a ID vašeho týmu.Verify the Pass Type IDs and your Team ID are correct.

TřídyClasses

Pro aplikace, které mají přístup k průchodům, jsou k dispozici následující třídy PassKit:The following PassKit classes are available for apps to access passes:

  • PKPass – instance Pass.PKPass – An instance of a Pass.
  • PKPassLibrary – poskytuje rozhraní API pro přístup k průchodům na zařízení.PKPassLibrary – Provides the API to access the passes on the device.
  • PKAddPassesViewController – slouží k zobrazení průchodu uživatelem, který se má ukládat do peněženky.PKAddPassesViewController – Used to display a pass for the user to save in their Wallet.
  • PKAddPassesViewControllerDelegate – vývojáři Xamarin. iOSPKAddPassesViewControllerDelegate – Xamarin.iOS developers

PříkladExample

V ukázkovém kódu tohoto článku najdete informace o projektu PassLibrary.Refer to the PassLibrary project in the sample code for this article. Ukazuje následující běžné funkce, které by se vyžadovaly v doprovodné aplikaci peněženky:It demonstrates the following common functions that would be required in a Wallet Companion Application:

Ověřte, že je k dispozici kapesní.Check that Wallet is Available

Kapesní není na iPadu k dispozici, takže aplikace by měly před pokusem o přístup k funkcím PassKit kontrolu.Wallet is not available on the iPad, so applications should check before attempting to access PassKit features.

if (PKPassLibrary.IsAvailable) {
    // create an instance and do stuff...
}

Vytvoření instance předávací knihovnyCreating a Pass Library Instance

Knihovna PassKit není typu Singleton, aplikace by měly vytvořit a uložit a získat přístup k rozhraní PassKit API.The PassKit library is not a singleton, applications should create and store and instance to access the PassKit API.

if (PKPassLibrary.IsAvailable) {
    library = new PKPassLibrary ();
    // do stuff...
}

Získat seznam průchodůGet a List of Passes

Aplikace mohou vyžádat seznam průchodů z knihovny.Applications can request a list of passes from the library. Tento seznam je automaticky filtrován podle PassKit, takže můžete vidět pouze průchody vytvořené pomocí ID vašeho týmu, které jsou uvedeny ve vašich oprávněních.This list is automatically filtered by PassKit, so that you can only see passes that have been created with your Team ID and which are listed in your Entitlements.

var passes = library.GetPasses ();  // returns PKPass[]

Všimněte si, že simulátor nefiltruje seznam vrácených průchodů, takže by tato metoda měla být vždy testována na skutečných zařízeních.Note that the simulator does not filter the list of passes returned, so this method should always be tested on real devices. Tento seznam se dá zobrazit v UITableView.This list can be displayed in a UITableView. Tato ukázková aplikace vypadá po přidání dvou spolukupónů:The sample app looks like this after two coupons have been added:

Ukázková aplikace vypadá po přidání dvou spolukupónů.The sample app look like this after two coupons have been added

Zobrazení průchodůDisplaying Passes

K dispozici je omezená sada informací pro vykreslování průchodů v doprovodných aplikacích.A limited set of information is available for rendering of passes within companion apps.

Vyberte z této sady standardních vlastností pro zobrazení seznamů průchodů, jak je uvedeno v příkladu kódu.Choose from this set of standard properties to display lists of passes, as the example code does.

string passInfo =
                "Desc:" + pass.LocalizedDescription
                + "\nOrg:" + pass.OrganizationName
                + "\nID:" + pass.PassTypeIdentifier
                + "\nDate:" + pass.RelevantDate
                + "\nWSUrl:" + pass.WebServiceUrl
                + "\n#" + pass.SerialNumber
                + "\nPassUrl:" + pass.PassUrl;

Tento řetězec se zobrazí jako výstraha v ukázce:This string is shown as an alert in the sample:

Výstraha vybraná pro kupón v ukázceThe Coupon Selected alert in the sample

Můžete také použít LocalizedValueForFieldKey() metodu k načtení dat z polí v předaných průchodech (od toho, co budete potřebovat k dispozici pole).You can also use the LocalizedValueForFieldKey() method to retrieve data from fields in the passes you have designed (since you will know what fields should be present). Ukázkový kód toto nezobrazuje.The example code does not show this.

Načtení průchodu ze souboruLoading a Pass from a File

Vzhledem k tomu, že je možné předat Pass pouze s uživatelským oprávněním, musí být předložen kontroler zobrazení, aby se mohl rozhodnout.Because a pass can only be added to Wallet with the user’s permission, a view controller must be presented to let them decide. Tento kód se používá v tomto příkladu v tlačítku Přidat , aby se načetl předem sestavený průchod, který je vložený v aplikaci (měli byste ho nahradit podpisem, který jste si zaregistrovali):This code is used in the Add button in the example, to load a pre-built pass that is embedded in the app (you should replace this with one that you have signed):

NSData nsdata;
using ( FileStream oStream = File.Open (newFilePath, FileMode.Open ) ) {
        nsdata = NSData.FromStream ( oStream );
}
var err = new NSError(new NSString("42"), -42);
var newPass = new PKPass(nsdata,out err);
var pkapvc = new PKAddPassesViewController(newPass);
NavigationController.PresentModalViewController (pkapvc, true);

K předání se zobrazí možnosti Přidat a Zrušit :The pass is presented with Add and Cancel options:

Předávací proces prezentovaný pomocí možností přidat a zrušitThe pass presented with Add and Cancel options

Nahradit existující PassReplace an Existing Pass

Nahrazením stávajícího průchodu není nutné mít oprávnění uživatele, ale v případě, že průchod ještě neexistuje, se nezdaří.Replacing an existing pass does not require the user’s permission, however it will fail if the pass does not already exist.

if (library.Contains (newPass)) {
     library.Replace (newPass);
}

Úprava průchoduEditing a Pass

PKPass není proměnlivá, takže nemůžete aktualizovat objekty Pass v kódu.PKPass isn’t mutable, so you cannot update pass objects in your code. Chcete-li změnit data v předání aplikace, musí mít přístup k webovému serveru, který může uchovávat záznam průchodů a generovat nový soubor Pass s aktualizovanými hodnotami, které může aplikace Stáhnout.To alter the data in a pass an application must have access to a web server that can keep a record of passes and generate a new pass file with updated values which the application can download.

Vytvoření souboru musí být provedeno na serveru, protože průchody musí být podepsány certifikátem, který musí být zabezpečený a zabezpečený.Pass file creation must be done on a server because passes must be signed with a certificate that must be kept private and secure.

Po vygenerování aktualizovaného předávacího souboru použijte Replace metodu k přepsání starých dat v zařízení.Once an updated pass file has been generated, use the Replace method to overwrite the old data on the device.

Zobrazit Pass pro kontroluDisplay a Pass for scanning

Jak už jsme uvedli, jenom kapesní může zobrazit průchod pro skenování.As previously noted, only Wallet can display a pass for scanning. Metodu Pass lze zobrazit pomocí OpenUrl metody, jak je znázorněno níže:A Pass can be displayed using the OpenUrl method as shown:

UIApplication.SharedApplication.OpenUrl (p.PassUrl);

Přijímání oznámení o změnáchReceiving Notifications Of Changes

Aplikace mohou naslouchat změnám provedené v knihovně Pass pomocí PKPassLibraryDidChangeNotification .Applications can listen for changes being made to the Pass Library using the PKPassLibraryDidChangeNotification. Změny mohou být způsobeny oznámeními, která spouštějí aktualizace na pozadí, takže je vhodné je naslouchat ve vaší aplikaci.Changes could be caused by notifications triggering updates in the background, so it is good practice to listen for them in your app.

noteCenter = NSNotificationCenter.DefaultCenter.AddObserver (PKPassLibrary.DidChangeNotification, (not) => {
    BeginInvokeOnMainThread (() => {
        new UIAlertView("Pass Library Changed", "Notification Received", null, "OK", null).Show();
        // refresh the list
        var passlist = library.GetPasses ();
        table.Source = new TableSource (passlist, library);
        table.ReloadData ();
    });
}, library);  // IMPORTANT: must pass the library in

Při registraci oznámení je důležité předat instanci knihovny, protože PKPassLibrary není typu singleton.It is important to pass a library instance when registering for the notification because PKPassLibrary is not a singleton.

Zpracování serveruServer Processing

Podrobná diskuzi o sestavení serverové aplikace pro podporu PassKit překračuje rámec tohoto úvodního článku.A detailed discussion of building a server application to support PassKit is beyond the scope of this introductory article.

Viz dotnet-aplikaci Passbook open source kód na straně serveru C#.See dotnet-passbook open source C# server-side code.

Nabízená oznámeníPush Notifications

Podrobná diskuzi o použití nabízených oznámení k aktualizaci průchodů je nad rámec tohoto úvodního článku.A detailed discussion of using push notifications to update passes is beyond the scope of this introductory article.

Je nutné implementovat rozhraní API, které je definováno společností Apple a reagovat na webové požadavky z kapesního umístění, když jsou vyžadovány aktualizace.You would be required to implement the REST-like API defined by Apple to respond to web requests from Wallet when updates are required.

Další informace najdete v tématu Aktualizace Průvodce pro předávání informací od společnosti Apple.See Apple's Updating a Pass guide for more information.

SouhrnSummary

V tomto článku jsme si popsali některé z důvodů, proč je to užitečné, a popisují různé části, které se musí implementovat pro úplné řešení PassKit.This article introduced PassKit, outlined some of the reasons why it is useful and described the different parts that must be implemented for a full PassKit solution. Popisuje kroky potřebné ke konfiguraci vašeho účtu Apple Developer k vytváření průchodů, procesu k ručnímu provedení a také k přístupu k rozhraním API PassKit z aplikace Xamarin. iOS.It described the steps required to configure your Apple Developer account to create passes, the process to make a pass manually and also how to access the PassKit APIs from a Xamarin.iOS application.