Нахавандипур Вандад
Шрифт:
• 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 — второстепенная информация, также отображаемая на лицевой стороне талона. Например, в посадочном талоне на самолет к этой категории можно отнести время посадки, дату посадки и тип воздушного судна;
• auxiliaryFields — наименее важная информация, отображаемая на лицевой стороне талона. В посадочном талоне на самолет к такой информации можно отнести предположительное время прибытия;
• backFields — информация, отображаемая на оборотной стороне талона.
В качестве значений все вышеупомянутые ключи получают словари, а эти словари, в свою очередь, могут содержать следующие ключи:
• label — надпись-название поля, которое должно отображаться на талоне (с лицевой или оборотной стороны в зависимости от того, к какому ключу добавлен этот словарь);
• key — ключ, которым ваше приложение может воспользоваться для считывания значения этого поля;
• value — значение этого поля;
• textAlignment — опциональный ключ, который может описывать визуальное выравнивание надписи на талоне. Для этого поля можно указать любое из следующих значений:
• PKTextAlignmentRight;
• PKTextAlignmentCenter;
• PKTextAlignmentLeft;
• PKTextAlignmentNatural;
• PKTextAlignmentJustified.
Да уж, многовато ключей и значений приходится запоминать. Но не волнуйтесь, со временем к этому привыкаешь. Итак, создадим простой файл pass.json. Сначала сформулируем требования, а потом приступим к написанию самого файла талона. Как раз применим на практике ту теорию, которую выучили раньше. Далее изложена суть примера.
• Создаваемый талон будет соответствовать железнодорожному билету.
• Поезд выходит из английского города Хоув в 7:37. Состав отбывает от платформы 2.
• Поезд прибывает на вокзал Лондон-Бридж в Лондоне в 8:41 (платформа 13).
• Билет предоставляет право проезда в поездах придуманной нами компании «О’Рейли Рэйлуэйз».
Но прежде, чем приступать к делу, нам потребуется подробно рассмотреть массив locations из файла pass.json. Этот ключ является массивом, каждый элемент которого имеет по два ключа. Чуть позже мы их рассмотрим. Но самая интересная черта этого ключа заключается в том, что он может содержать геолокационную информацию о создаваемом вами талоне. Когда талон импортируется в приложение Passbook на вашем устройстве с iOS, операционная система выведет для пользователя информацию о вашем талоне. В частности, будет сообщено, что талон действителен в том месте, где сейчас находится пользователь. Предположим следующее: пользователю нужно показывать билет на поезд всякий раз, когда он (как пассажир) подходит к турникету на станции Хоув (станция отправления). Итак, вы можете указать в электронном талоне местоположение станции отправления (по ключу locations), чтобы iOS автоматически выводила талон на экран, как только пользователь прибудет на станцию. Вы можете реализовать такую же функцию и для конечной станции, так как, когда вечером пользователь будет уезжать с вокзала Лондон-Бридж в Хоув, станцией отправления станет Лондон. Если вы движетесь из точки A в точку B, то B — пункт назначения. Когда вы возвращаетесь, B становится точкой отправления, а A — точкой назначения. Итак, вы можете указать в массиве locations местоположение точек A и B, а также любых других важных точек на том маршруте, где действует ваш талон. Вот ключи, которые могут входить в состав любого массива с информацией о местоположении:
• longitude — долгота географической точки. Это значение типа double. Не заключайте его в кавычки;
• latitude — широта географической точки. Это значение типа double. Не заключайте его в кавычки.
См. также
Разделы 19.0 и 19.2.
19.3. Подготовка пиктограмм и изображений для талонов
Постановка задачи
Необходимо гарантировать, что оформление вашего талона будет выдержано в стилистике компании. Для этого нужно придать талону характерные черты либо снабдить его узнаваемым изображением.