iOS. Приемы программирования
Шрифт:
Я специально оставил ключи teamIdentifier и passTypeIdentifier
Класс. Теперь у нас есть готовый файл pass.json, который можно включать в талон с цифровой подписью. Не забывайте, талон — это не только файл pass.json. В состав талона входят также несколько изображений и файл описания (манифеста), где будут перечислены все файлы, образующие талон.
Приведу некоторые важнейшие ключи, которые могут находиться в файле pass.json:
• formatVersion — этот ключ указывает версию формата талона. Его значение должно быть равно константе 1;
• passTypeIdentifier — это идентификатор талона, созданный вами ранее на портале инициализации iOS, но здесь не указывается ID команды. Например, если мой полный идентификатор типа талона — TEAMID.pass.pixolity.testingpasskit, то в данном случае я укажу значение идентификатора талона как pass.pixolity.testingpasskit;
• teamIdentifier — это идентификатор вашей команды. Чтобы узнать это значение, просто перейдите на главную страницу центра разработки в iOS (iOS Dev Center) и далее — в Центр участников (Member Center). Выберите вашу учетную запись (Your Account), а затем Профиль организации (Organization Profile). Там вы должны найти поле под названием Company/Organization ID (Идентификатор компании/организации). Это идентификатор вашей команды. Просто скопируйте это значение и вставьте его в качестве ключа в ваш файл pass.json;
• description — краткое описание назначения талона. Это описание будет использоваться при оптимизации доступности приложения в iOS;
• organizationName — имя вашей компании;
• serialNumber — уникальный серийный номер талона. Вы можете придумать его по ходу разработки. Он должен быть информативным для вас и вашей организации. Обратите внимание: если два и более талона имеют один и тот же идентификатор типа, то их серийные номера не могут быть одинаковыми;
• barcode — штрихкод для талона. Настоятельно рекомендуется включать в цифровой талон информацию в формате штрихкода. Это словарь, ключи, которые могут в нем находиться, описаны далее:
• message — сообщение, зашифрованное в штрихкоде;
• format — формат штрихкода. В качестве значений для этого ключа можно указать PKBarcodeFormatText, PKBarcodeFormatQR, PKBarcodeFormatPDF417 или PKBarcodeFormatAztec. Обсуждение формата штрихкодов выходит за рамки этой книги, поэтому в данном случае не будем вдаваться в детали;
• messageEncoding — кодировка, применяемая в штрихкоде. В качестве значения этого ключа укажите iso-8859-1;
• logoText — текст, который будет выводиться на вашем талоне рядом с логотипом в приложении Passbook на устройстве;
• foregroundColor —
• backgroundColor — фоновый цвет вашего талона. Указывается в том же формате, что и foregroundColor.
Когда все нужные значения для этих ключей будут заданы, вы сможете указать тип создаваемого талона. Для этого нужно включить в число высокоуровневых ключей талона либо один из предыдущих ключей, либо один из следующих:
• eventTicket — сообщает Passbook, что талон представляет собой билет на мероприятие, например на концерт;
• coupon — сообщает Passbook, что талон представляет собой скидочный купон. Например, такой талон может быть выдан в магазине, и пользователь, предъявив его, имеет право на скидку при приобретении тех или иных товаров;
• storeCard — говорит Passbook, что талон представляет собой дисконтную или клубную карту;
• boardingPass — сообщает Passbook, что талон представляет собой проездной билет на поезд или автобус либо посадочный талон на самолет;
• generic — талон, не относящийся ни к одной из вышеупомянутых категорий.
Каждый из приведенных ключей в файле pass.json будет содержать словарь значений (которые, в свою очередь, являются ключами со значениями). Эти ключи будут конкретно определять, для чего применяется талон и какие значения он содержит.
Когда вы внесете талон одного из этих типов в качестве ключа в файл pass.json, нужно будет указать словарные ключи и значения для данного талона (мы уже говорили, что все талоны вышеперечисленных типов являются словарями). Каждый словарь такого типа может содержать следующие ключи:
• transitType — этот ключ требуется только в словаре типа boardingPass. В других случаях его можно просто игнорировать. В этом словаре могут содержаться следующие значения: PKTransitTypeAir, PKTransitTypeBus, PKTransitTypeTrain, PKTransitTypeBoat и PKTransitTypeGeneric. Талоны с такими значениями соответствуют билетам на самолет, автобус, поезд, водный транспорт. Последнее значение является универсальным;
• headerFields — часть информации, расположенная в верхней части талона и доступная для просмотра в Passbook на устройстве. Старайтесь не перегружать этот заголовок информацией, поскольку эти значения всегда будут видны пользователю, даже если все талоны сложены «в стопку» в интерфейсе приложения Passbook;
• primaryFields — самая важная информация о вашем талоне, которая будет отображаться на его лицевой стороне. Например, если мы говорим о посадочном талоне на самолет, то здесь вы найдете номер терминала, номер места и название авиакомпании. В другом талоне здесь может присутствовать иной набор значений;
• secondaryFields — второстепенная информация, также отображаемая на лицевой стороне талона. Например, в посадочном талоне на самолет к этой категории можно отнести время посадки, дату посадки и тип воздушного судна;