Как добавить пропуск на айфон
Перейти к содержимому

Как добавить пропуск на айфон

  • автор:

Как добавить карту пропуск unifi в apple wallet

Вы используете устаревший браузер. Этот и другие сайты могут отображаться в нём некорректно.
Вам необходимо обновить браузер или попробовать использовать другой.

Оцените эту тему

Artemlassle
новичок

31 Янв 2023 1 0 3 23
Не получается добавить карту пропуск в apple wallet

Вложения

image.jpg

1,3 MB Просмотры: 73

image.jpg

1,8 MB Просмотры: 71

fAntom
Super Moderator

Команда форума
24 Ноя 2017 6.011 370 5.065 ubnt.su

» This is due to the hardware limitation that Apple does not support adding a custom 3rd-party NFC card to the Wallet.
We will consider adding support for Apple’s devices in the future without enrolling UID with a subscription.»

Это связано с аппаратным ограничением, из-за которого Apple не поддерживает добавление пользовательской карты NFC стороннего производителя в Wallet .
В будущем мы рассмотрим возможность добавления поддержки устройств Apple без регистрации UID с помощью подписки.

Поделиться:

Автор Похожие темы Раздел Ответов Дата
A Добавить комп в домен AD UniFi 2 8 Сен 2023
I Unifi controller, как добавить в него ТД? UniFi 1 28 Май 2023
G Не получается добавить точки доступа на UCK gen1 UniFi 13 5 Июл 2021
M Не могу добавить Unifi UAP AC в контроллер нет кнопки Adopt UniFi 7 19 Дек 2020
Б Здравствуйте помогите решить вопрос Nanostation loco M 5 менял прошивку через Tftp водил команды через Putty для того чтоб добавить страну не получает UBIQUITI Общий форум 1 29 Июн 2020
E Решено В cloud key не могу добавить АР (ручное обновление прошивки AP) UBIQUITI Общий форум 8 11 Дек 2019
Как AP Pico Station 5 и подобные добавить в админку (в контроллер)? UniFi 1 15 Май 2019

Добавление пропусков и управление ими в Кошельке на iPhone

Добавление пропусков и управление ими в Кошельке на iPhone

Используйте приложение Wallet чтобы хранить призовые карты, купоны, посадочные талоны, билеты в кино и на мероприятия и многое другое в одном месте для легкого доступа. Пропуска могут содержать полезную информацию, такую ​​как остаток на вашей кофейной карте, срок действия купона или информацию о посадке на рейс.

Экран кошелька, показывающий верхнюю часть нескольких кредитных и дебетовых карт и пропусков.

Содержание скрывать

Добавить проездной

Вас могут попросить добавить проездной в приложении после выполнения такого действия, как покупка билета. Или вы можете нажать «Добавить в Apple Wallet», когда увидите его в следующих местах:

  • Приложения с поддержкой кошелька
  • Почта или сообщения
  • Web браузер, такой как Safari
  • Обмен десантный
  • Уведомление о кошельке после использования Apple Pay у поддерживаемого продавца
  • QR-код или штрих-код

Чтобы отсканировать код, откройте приложение «Камера». , затем расположите iPhone так, чтобы код появился на экране.

Переставьте свои пасы

  1. В стопке бумажника нажмите и удерживайте карту, которую хотите переместить.
  2. Перетащите пропуск на новое место в стопке.

View информация о пропуске и изменение его настроек

  1. Коснитесь пропуска, затем коснитесь .
  2. Выберите любой из следующих вариантов (не все варианты доступны для всех проездных):
  3. Автоматические обновления: Разрешить проходу получать обновления от издателя.
  4. Предложить на экране блокировки: Покажите пропуск в зависимости от времени или места.

Чтобы разрешить доступ к местоположению, перейдите в Настройки > Конфиденциальность> Службы геолокации> Кошелек, затем коснитесь При использовании приложения.

  • Автоматический выбор: Выберите проездной, по которому он запрашивается.
  • Поделиться пропуском: Отправьте пропуск другу с помощью почты или сообщений.
  • Удалить пропуск: Удалите пропуск со всех своих устройств, на которых вы вошел в систему с вашим Apple ID.
  • Прокрутите вниз до view другая информация, такая как связанное приложение, сведения об использовании и положения и условия.
  • Измените настройки для всех ваших пропусков

    • Своевременно обновляйте свои пропуски на других устройствах:Войдите, используя свой Apple ID на вашем iPhone, iPod touch и Apple Watch.

    Примечание: Этот параметр применяется только к пропускам в Wallet, но не к картам, которые вы используете с Apple Pay.

  • Установите параметры уведомлений: Перейдите в настройки > Уведомления> Кошелек.
  • Предотвращение появления пассов на экране блокировки: Перейдите в «Настройки»> «Кошелек и Apple Pay», затем отключите «Боковую кнопку двойного щелчка» (на iPhone с Face ID) или кнопку «Домой двойного щелчка» (на других моделях iPhone).
  • Похожие сообщения

    Поддержка Apple

    Добавление и использование пропусков в Wallet на Apple Watch Используйте приложение Wallet на Apple Watch, чтобы сохранить свои…

    Добавляйте виджеты на iPhone.

    Вы можете настроить большинство виджетов так, чтобы они отображали нужную вам информацию. Для бывшегоample, вы можете редактировать…

    Добавление и использование пропусков в Wallet на Apple Watch

    Добавление и использование пропусков в Wallet на Apple Watch Используйте приложение Wallet на Apple Watch, чтобы сохранить свои…

    Добавьте свою контактную информацию на iPhone

    Нажмите «Моя карточка» вверху списка контактов, затем нажмите «Изменить». Контакты предлагает адреса и телефон .

    Использование Wallet для пропусков и билетов

    В программе Wallet на Apple Watch Вы можете хранить в одном месте свои пропуски, включая посадочные талоны, билеты, дисконтные карты и многое другое. Карты в Wallet на iPhone автоматически синхронизируются с Apple Watch (если Вы включили функцию «Повтор iPhone» в программе Apple Watch). Отсканируйте карту на Apple Watch, чтобы зарегистрироваться на рейс, сходить в кино или использовать купон. Чтобы установить настройки для Ваших карт на Apple Watch, откройте программу Apple Watch на iPhone и выберите «Мои часы» > «Wallet и Apple Pay».

    Коснитесь карты на экране Wallet, чтобы ее посмотреть.

    Как добавить пропуск. Выполните инструкции из письма, которое Вы получили от компании, выдавшей карту, откройте ее программу и коснитесь «Добавить» в уведомлении.

    Использование карты. Если на Apple Watch отобразится запрос на использование карты, коснитесь его, чтобы отобразить карту. Возможно, нужно будет прокрутить экран, чтобы найти штрихкод. Или откройте Wallet , выберите карту, затем поднесите штрихкод к терминалу.

    Изменение порядка карт. Откройте программу Wallet на iPhone и перетяните карты, чтобы расставить их в нужном порядке. Карты отобразятся в новом порядке и на Apple Watch.

    Карта больше не нужна? Удалите карту на iPhone. Откройте программу Wallet, выберите карту, коснитесь кнопки и выберите «Удалить».

    • Введение
      • Краткий обзор Apple Watch
      • Настройка и создание пары с iPhone
      • Программа Apple Watch
      • Включение, вывод из режима сна и разблокировка
      • Значки статуса
      • Настройка яркости, размера текста, звуков и тактильных сигналов
      • Изменение языка и ориентации
      • Зарядка Apple Watch
      • Как ухаживать за Apple Watch
      • Другие способы просмотра руководства пользователя
      • Использование и упорядочение программ
      • Установленные программы
      • Общение с друзьями
      • Перенос задач с Apple Watch на iPhone
      • Определение местонахождения iPhone
      • Использование Apple Watch без пары с iPhone
      • Siri на Apple Watch
      • Отключение Wi-Fi и Bluetooth
      • Настройка циферблата
      • Циферблаты и функции
      • Уведомления на Apple Watch
      • Мгновенный ответ на уведомления
      • Ответ на непрочитанные уведомления
      • Краткий обзор полезной информации
      • Просмотр информации на превью
      • Как упорядочить превью
      • Установка будильников
      • Использование таймера
      • Измерение времени с помощью секундомера
      • Время в других поясах
      • Распорядок дня с функцией «Сквозь время»
      • Часы на прикроватной тумбочке
      • Чтение сообщений и ответ на них
      • Отправка сообщений и управление ими
      • Информация о Digital Touch
      • Отправка Digital Touch
      • Чтение почты
      • Ответ на письма
      • Управление почтой
      • Ответ на телефонный звонок
      • Телефонные звонки
      • Совершение звонков по Wi-Fi.
      • Просмотр и изменение данных в календаре
      • Установка напоминаний и ответ на них
      • Отслеживание ежедневной активности
      • Отслеживание Ваших тренировок
      • Измерение пульса
      • Точность данных
      • Совершение покупок с Apple Pay
      • Использование дисконтных карт
      • Использование Wallet для пропусков и билетов
      • Изучение карты
      • Маршруты
      • Воспроизведение музыки на iPhone
      • Воспроизведение музыки на Apple Watch
      • Управление музыкой на Mac или ПК
      • Управление Apple TV
      • Просмотр фото на Apple Watch
      • Выбор альбома
      • Хранение фото
      • Использование удаленного видоискателя и затвора
      • Использование таймера для спуска затвора
      • Курс акций
      • Быстрый просмотр курса акций
      • Добавление курса акций на циферблат
      • Прогноз погоды
      • Просмотр прогноза погоды на циферблате
      • Быстрый вызов функций универсального доступа
      • VoiceOver
      • Настройка Apple Watch с помощью VoiceOver
      • Основы работы с VoiceOver на Apple Watch
      • Увеличение
      • Метки для кнопок Вкл./Выкл.
      • Моно-аудио и аудиобаланс
      • Жирный шрифт
      • Размер текста
      • Siri
      • Важная информация по безопасности
      • Важная информация по эксплуатации
      • Сведения об уходе за ремешком
      • Снятие, смена и застегивание ремешков
      • Сайт поддержки Apple Watch
      • Перезагрузка Apple Watch
      • Сброс настроек Apple Watch
      • Информация об Apple Watch
      • Восстановление Apple Watch
      • Обновление ПО Apple Watch
      • Восстановление Apple Watch из резервной копии
      • Продажа, передача другому пользователю или потеря Apple Watch
      • Дополнительная информация, сервис и поддержка
      • Декларация о соответствии нормам Федерального агентства по связи США (FCC) для Apple Watch, кабеля с магнитным креплением для зарядки Apple Watch и футляра с магнитным креплением для зарядки Apple Watch
      • Декларация о соответствии канадским стандартам для Apple Watch, кабеля с магнитным креплением для зарядки Apple Watch и футляра с магнитным креплением для зарядки Apple Watch
      • Проба и пробирное клеймо Apple Watch Edition
      • Утилизация и вторичная переработка
      • Apple и окружающая среда

      PassKit в Xamarin.iOS

      Приложение «Кошелек iOS» позволяет пользователям хранить цифровые пропуска на своих устройствах. Эти пропуска создаются продавцами и отправляются клиенту по электронной почте, URL-адресам или через собственное приложение продавца iOS. Эти пропуски могут представлять различные вещи, от билетов в кино до карт лояльности до посадочных талеров. Платформа PassKit позволяет разработчикам взаимодействовать с проходами программным способом.

      В этом документе описано, как использовать Кошелек и API PassKit с Xamarin.iOS.

      Кошелек хранит и упорядочивает все пропуска на телефоне

      Требования

      Для функций PassKit, описанных в этом документе, требуется iOS 6 и Xcode 4.5, а также Xamarin.iOS 6.0.

      Введение

      Основная проблема, которую решает PassKit, — это распространение штрихкодов и управление ими. Ниже приведены некоторые реальные примеры использования штрихкодов:

      • Покупка билетов в кино через Интернет — клиентам обычно отправляется по электронной почте штрих-код, представляющий их билеты. Этот штрихкод печатается и выводится в кинотеатр для сканирования для входа.
      • Карты лояльности . Клиенты носят в своем кошельке или кошельке несколько различных карточек для магазина для отображения и сканирования при покупке товаров.
      • Купоны — купоны распространяются по электронной почте, в виде печатных веб-страниц, через почтовые ящики и в виде штрих-кодов в газетах и журналах. Клиенты приносят их в магазин для сканирования, чтобы получить товары, услуги или скидки взамен.
      • Посадочные талоны — аналогично покупке билета в кино.

      PassKit предлагает альтернативу для каждого из этих сценариев:

      • Билеты в кино . После покупки клиент добавляет билет на мероприятие (по электронной почте или по ссылке на веб-сайт). По мере приближения времени для фильма пропуск будет автоматически отображаться на экране блокировки в качестве напоминания, а по прибытии в кино он легко извлекается и отображается в кошельке для сканирования.
      • Карты лояльности . Вместо того, чтобы (или в дополнение) предоставлять физические карта, магазины могут выдавать (по электронной почте или после входа на веб-сайт) карточку Store Card Pass. Магазин может предоставлять дополнительные функции, такие как обновление баланса учетной записи на пропуске с помощью push-уведомлений, а также использование служб геолокации, которые могут автоматически отображаться на экране блокировки, когда клиент находится рядом с магазином.
      • Купоны . Купоны можно легко создать с уникальными характеристиками, чтобы помочь с отслеживанием, и распространяться по электронной почте или ссылкам на веб-сайт. Скачанные купоны могут автоматически отображаться на экране блокировки, когда пользователь находится рядом с определенным расположением и /или в определенную дату (например, при приближении даты окончания срока действия). Так как купоны хранятся на телефоне пользователя, они всегда под рукой и не путаются. Купоны могут побудить клиентов скачивать приложения-компаньоны, так как App Store ссылки могут быть включены в Pass, что повышает вовлеченность клиента.
      • Посадочные талоны. После процесса проверка через Интернет клиент получит свой посадочный талон по электронной почте или по ссылке. Приложение-компаньон, предоставляемое поставщиком транспорта, может включать процесс проверка, а также позволить клиенту выполнять дополнительные функции, такие как выбор места или еды. Поставщик транспорта может использовать push-уведомления для обновления прохода в случае задержки или отмены транспорта. По мере приближения времени посадки пропуск появится на экране блокировки в качестве напоминания и для быстрого доступа к pass.

      По сути, PassKit предоставляет простой и удобный способ хранения и отображения штрихкодов на устройстве iOS. Благодаря интеграции дополнительного времени и блокировки расположения, push-уведомления и приложение-компаньон интегрируются, он обеспечивает основу для очень сложных служб продаж, продажи билетов и выставления счетов.

      Экосистема PassKit

      PassKit — это не просто API в CocoaTouch, а часть более крупной экосистемы приложений, данных и служб, которые упрощают безопасный обмен штрихкодами и другими данными и управление ими. На этой высокоуровневой схеме показаны различные сущности, которые могут быть вовлечены в создание и использование проходов:

      На этой высокоуровневой схеме показаны сущности, участвующие в создании и использовании проходов

      Каждая часть экосистемы имеет четко определенную роль:

      • Кошелек — встроенное приложение Apple для iOS, которое хранит и отображает пропуска. Это единственное место, где проходы отображаются для использования в реальном мире (т. е. штрихкод отображается вместе со всеми локализованными данными на проходе).
      • Приложения-компаньоны — приложения iOS 6, созданные поставщиками пропусков для расширения функциональности пропуска, которые они выдают, например добавление ценности в магазин карта, изменение места в посадочном талоне или другие бизнес-функции. Приложения-компаньоны не требуются для использования прохода.
      • Ваш сервер — защищенный сервер, на котором можно создавать и подписывали пропуска для распространения. Приложение-компаньон может подключаться к серверу для создания новых пропусков или запроса обновлений существующих проходов. При необходимости можно реализовать API веб-службы, который Wallet будет вызывать для обновления проходов.
      • Серверы APNS — ваш сервер может уведомлять Кошелек об обновлениях для передачи на данном устройстве с помощью APNS. Отправьте уведомление в Кошелек, который затем свяжется с вашим сервером для получения сведений об изменениях. Приложениям-компаньонам не нужно реализовывать APNS для этой функции (они могут прослушивать PKPassLibraryDidChangeNotification ).
      • Conduit Apps — приложения, которые не управляют проходами напрямую (например, сопутствующие приложения), но могут улучшить их служебную программу, распознавая проходы и позволяя добавлять их в кошелек. Почтовые клиенты, браузеры социальных сетей и другие приложения для агрегирования данных могут сталкиваться с вложениями или ссылками на проходы.

      Вся экосистема выглядит сложной, поэтому стоит отметить, что некоторые компоненты являются необязательными и гораздо более простыми реализациями PassKit.

      Что такое pass?

      Проход — это коллекция данных, представляющих билет, купон или карта. Он может быть предназначен для однократного использования отдельным пользователем (и, следовательно, содержит такие сведения, как номер рейса и распределение рабочих мест) или может быть маркером многократного использования, который может совместно использоваться любым количеством пользователей (например, скидка купон). Подробное описание доступно в документе Apple About Pass Files .

      Типы

      В настоящее время поддерживаются пять типов, которые можно отличить в приложении «Кошелек» по макету и верхнему краю прохода:

      • Event Ticket — небольшой полукруглый вырез.
      • Посадочный талон — вырезы в боковой части, можно указать значок для конкретного транспорта (например, автобус, поезд, самолет).
      • Карта магазина — округленная верхняя часть, например кредитный или дебетовый карта.
      • Купон — перфорирован по верхней части.
      • Универсальный — то же, что и карточка магазина, округленная сверху.

      На этом снимке экрана показаны пять типов пропусков (по порядку: купон, универсальный, магазин карта, посадочный талон и билет на событие):

      На этом снимке экрана показаны пять типов проходов

      Структура файла

      Секретный файл — это ZIP-архив с расширением PKPASS , содержащий некоторые конкретные JSON-файлы (обязательные), различные файлы изображений (необязательно), а также локализованные строки (также необязательно).

      • pass.json — обязательный аргумент. Содержит все сведения для прохода.
      • manifest.json — обязательный аргумент. Содержит хэши SHA1 для каждого файла в проходе, кроме файла подписи и этого файла (manifest.json).
      • подпись — обязательный аргумент. Создается путем подписывания manifest.json файла сертификатом, созданным на портале подготовки iOS.
      • logo.png — необязательно.
      • background.png — необязательно.
      • icon.png — необязательно.
      • Локализуемые файлы строк — необязательно.

      Ниже показана структура каталогов секретного файла (это содержимое ZIP-архива):

      Здесь показана структура каталогов секретного файла

      pass.json

      JSON — это формат, так как проходы обычно создаются на сервере. Это означает, что код создания не зависит от платформы на сервере. Три ключевых элемента информации в каждом проходе:

      • teamIdentifier — все сообщения, которые вы создаете, в учетную запись App Store. Это значение отображается на портале подготовки iOS.
      • passTypeIdentifier — зарегистрируйтесь на портале подготовки для группировки проходов (если создается несколько типов). Например, кафе может создать магазин карта тип пропуска, чтобы позволить клиентам получать кредиты на лояльность, а также отдельный тип купон для создания и распространения купонов на скидку. Тот же кафе может даже провести мероприятия живой музыки и выдать билет на событие для них.
      • serialNumber — уникальная строка в этом объекте passTypeidentifier . Значение непрозрачно для Wallet, но важно для отслеживания определенных проходов при взаимодействии с сервером.

      В каждом Pass есть большое количество других ключей JSON, пример которых показан ниже:

      < "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. > > 

      Штрихкоды

      Поддерживаются только двухd-форматы: PDF417, Aztec, QR. Apple утверждает, что 1D штрихкоды не подходит для сканирования на экране телефона с подсветкой.

      Альтернативный текст, отображаемый под штрихкодом, является необязательным. Некоторые продавцы хотят иметь возможность читать или вводить текст вручную.

      Кодировка ISO-8859-1 является наиболее распространенной, проверка которой используется системами сканирования, которые будут считывать ваши пропуска.

      Релевантность (экран блокировки)

      Существует два типа данных, которые могут привести к отображению прохода на экране блокировки:

      Расположение

      В pass можно указать до 10 расположений, например магазины, которые часто посещает клиент, или расположение кинотеатра или аэропорта. Клиент может задать эти расположения с помощью приложения-компаньона или поставщик может определить их по данным об использовании (если они собираются с разрешения клиента).

      Когда пропуск отображается на экране блокировки, забор вычисляется таким образом, чтобы при выходе пользователя из этой области он был скрыт с экрана блокировки. Радиус привязывается к стилю передачи, чтобы предотвратить злоупотребление.

      Дата и время

      В pass можно указать только одну дату и время. Дата и время полезны для запуска напоминаний на экране блокировки для посадочных такетов и билетов на события.

      Можно обновить с помощью push-уведомлений или ЧЕРЕЗ API PassKit, чтобы можно было обновить дату и время в случае многократного использования билета (например, абонемента в театр или спортивный комплекс).

      Локализация

      Перевод прохода на несколько языков аналогичен локализации приложения iOS. Создайте каталоги для конкретного языка с расширением .lproj и поместите локализованные элементы внутри. Текстовые переводы должны быть введены в pass.strings файл, а локализованные изображения должны иметь то же имя, что и образ, который они заменяют в корневом каталоге Pass.

      Безопасность

      Пропуска подписываются с помощью закрытого сертификата, который создается на портале подготовки iOS. Чтобы подписать пропуск, выполните следующие действия.

      1. Вычислите хэш SHA1 для каждого файла в каталоге manifest.json pass (не включайте файл или signature , ни тот, который не должен существовать на данном этапе).
      2. Запись manifest.json в виде списка ключей и значений JSON для каждого имени файла с его хэшем.
      3. Используйте сертификат, чтобы подписать manifest.json файл и записать результат в файл с именем signature .
      4. Запакуйте все в ZIP-файле и присвойте полученному файлу .pkpass расширение.

      Так как для подписи передачи требуется закрытый ключ, этот процесс следует выполнять только на защищенном сервере, который вы контролируете. НЕ распространяйте ключи, чтобы попытаться создать проходы в приложении.

      Настройка и установка

      В этом разделе содержатся инструкции по настройке сведений о подготовке и создании первого прохода.

      Подготовка PassKit

      Чтобы пройти App Store, он должен быть связан с учетной записью разработчика. Для этого требуется два шага.

      1. Проход должен быть зарегистрирован с помощью уникального идентификатора, называемого идентификатором типа передачи.
      2. Чтобы подписать проход с помощью цифровой подписи разработчика, необходимо создать действительный сертификат.

      Чтобы создать идентификатор типа pass, выполните следующие действия.

      Создание идентификатора типа pass

      Первым шагом является настройка идентификатора типа pass для каждого поддерживаемого типа передачи. Идентификатор прохода (или идентификатор типа прохода) создает уникальный идентификатор для pass. Мы будем использовать этот идентификатор для связывания прохода с вашей учетной записью разработчика с помощью сертификата.

      1. В разделе Сертификаты, идентификаторы и профили портала подготовки iOS перейдите в раздел Идентификаторы и выберите Pass Type IDs ( Передать идентификаторы типов ). Затем нажмите кнопку+, чтобы создать новый тип прохода: Создать новый тип прохода.
      2. Укажите описание (имя) и идентификатор (уникальная строка) для pass. Обратите внимание, что все идентификаторы типа передачи должны начинаться со строки pass. В этом примере используется pass.com.xamarin.coupon.banana : укажите описание и идентификатор.
      3. Подтвердите пароль, нажав кнопку Зарегистрировать .
      Создание сертификата

      Чтобы создать сертификат для этого идентификатора типа передачи, выполните следующие действия.

      1. Выберите созданный идентификатор pass из списка и нажмите кнопку Изменить: выберите новый идентификатор секретного кода в списке. Затем выберите Создать сертификат. : Выберите Создать сертификат.
      2. Выполните действия, чтобы создать запрос на подпись сертификата (CSR).
      3. Нажмите кнопку Продолжить на портале разработчика и отправьте CSR, чтобы создать сертификат.
      4. Скачайте сертификат и дважды щелкните его, чтобы установить его в связка ключей.

      Теперь, когда мы создали сертификат для этого идентификатора типа pass, в следующем разделе описывается, как создать проход вручную.

      Дополнительные сведения о подготовке кошелька см. в руководстве По работе с возможностями .

      Создание прохода вручную

      Теперь, когда мы создали тип pass, мы можем вручную создать проход для тестирования на симуляторе или устройстве. Ниже приведены шаги для создания прохода.

      • Создайте каталог, содержащий файлы передачи.
      • Создайте файл pass.json, содержащий все необходимые данные.
      • Включите изображения в папку (при необходимости).
      • Вычислите хэши SHA1 для каждого файла в папке и выполните запись в manifest.json.
      • Подпишите файл manifest.json скачанным P12-файлом сертификата.
      • Заархивуйте содержимое каталога и переименуйте с расширением PKPASS.

      В примере кода для этой статьи есть некоторые исходные файлы, которые можно использовать для создания прохода. Используйте файлы в каталоге CouponBanana.raw CreateAPassManually. Существуют следующие файлы:

      Эти файлы присутствуют

      Откройте файл pass.json и измените json. Необходимо как минимум обновить и teamIdentifer в passTypeIdentifier соответствии с вашей учетной записью разработчика Apple.

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

      Затем необходимо вычислить хэши для каждого файла и создать manifest.json файл. Когда все будет готово, он будет выглядеть примерно так:

      Затем необходимо создать подпись для этого файла с помощью сертификата (P12-файла), созданного для этого идентификатора типа pass.

      Подписывание на компьютере Mac

      Скачайте материалы по поддержке семян кошелька с сайта загрузок Apple . signpass Используйте средство , чтобы превратить папку в проход (это также вычислит хэши SHA1 и запакует выходные данные в PKPASS-файл).

      Тестирование

      Если бы вы изучить выходные данные этих средств (задав имя файла .zip и открыв его), вы увидите следующие файлы (обратите внимание на добавление manifest.json файлов и signature ):

      Изучение выходных данных этих средств

      После подписания, ZIPped и переименования файла (например, в BananaCoupon.pkpass ), вы можете перетащить его в симулятор для тестирования или отправить его по электронной почте себе, чтобы получить на реальном устройстве. Вы увидите экран для добавления прохода, как показано ниже:

      Добавление экрана передачи

      Обычно этот процесс будет автоматизирован на сервере, однако создание прохода вручную может быть вариантом для малых предприятий, которые создают только купоны, не требующие поддержки внутреннего сервера.

      Wallet

      Кошелек является центральным элементом экосистемы PassKit. На этом снимке экрана показан пустой кошелек, а также то, как выглядит список проходов и отдельные проходы:

      На этом снимке экрана показан пустой кошелек, а также то, как выглядит список проходов и отдельные проходы

      К функциям Wallet относятся:

      • Это единственное место, где пропускаются с их штрихкодом для сканирования.
      • Пользователь может изменять параметры обновлений. Если этот параметр включен, push-уведомления могут активировать обновление данных в pass.
      • Пользователь может включить или отключить интеграцию с экраном блокировки. Если этот параметр включен, он автоматически будет отображаться на экране блокировки на основе данных о времени и расположении, внедренных в проход.
      • Обратная сторона прохода поддерживает оттягивание до обновления, если url-адрес web-server-URL указан в коде JSON для передачи.
      • Приложения-компаньоны можно открыть (или скачать), если идентификатор приложения указан в коде JSON.
      • Проходы можно удалить (с помощью милой анимации измельчения).

      Добавление Pass в Кошелек

      Пропуски можно добавить в Кошелек следующими способами:

      • Приложения Conduit — они не управляют передачами напрямую, они просто загружают файлы передачи и предоставляют пользователю возможность добавить их в Wallet.
      • Приложения-компаньоны . Они написаны поставщиками для распространения проходов и предоставления дополнительных возможностей для их просмотра или редактирования. Приложения Xamarin.iOS имеют полный доступ к API PassKit для создания проходов и управления ими. Затем проходы можно добавить в Кошелек с помощью PKAddPassesViewController . Этот процесс более подробно описан в разделе Приложения-компаньоны этого документа.

      Приложения Conduit

      Приложения Conduit — это промежуточные приложения, которые могут получать пропуска от имени пользователя и должны быть запрограммированы для распознавания типа контента и предоставления функциональных возможностей для добавления в кошелек. Ниже приведены примеры приложений-проводников.

      • Почта — распознает вложение как pass.
      • Safari — распознает тип содержимого передачи при щелчке по ссылке сквозного URL-адреса.
      • Другие пользовательские приложения — любое приложение, которое получает вложения или открытые ссылки (клиенты социальных сетей, средства чтения почты и т. д.).

      На этом снимке экрана показано, как почта в iOS 6 распознает вложение прохода и (при касании) предлагает добавить его в кошелек.

      На этом снимке экрана показано, как Приложение

      На этом снимке экрана показано, как почта предлагает добавить в кошелек вложения

      Если вы создаете приложение, которое может быть каналом для проходов, их можно распознать следующим образом:

      • Расширение файла — .pkpass
      • Тип MIME — application/vnd.apple.pkpass
      • UTI — com.apple.pkpass

      Основная операция приложения conduit заключается в извлечении файла pass и вызове PassKit, PKAddPassesViewController чтобы предоставить пользователю возможность добавить этот пароль в свой кошелек. Реализация этого контроллера представлений рассматривается в следующем разделе о приложениях-компаньонах.

      Приложения conduit не нужно подготавливать для определенного идентификатора типа прохода так же, как это делают приложения-компаньоны.

      Сопутствующие приложения

      Приложение-компаньон предоставляет дополнительные функции для работы с проходами, включая создание pass, обновление сведений, связанных с Pass, и управление другими проходами, связанными с приложением.

      Приложения-компаньоны не должны пытаться дублировать функции Wallet. Они не предназначены для отображения проходов для сканирования.

      В оставшейся части этого раздела описывается создание базового приложения-компаньона, взаимодействующего с PassKit.

      Подготовка

      Так как Wallet — это технология хранения, приложение должно быть подготовлено отдельно и не может использовать профиль подготовки команды или идентификатор приложения с подстановочными знаками. Сведения о создании уникального идентификатора приложения и профиля подготовки для приложения Кошелька см. в руководстве По работе с возможностями .

      Объемы обслуживания

      Файл Entitlements.plist должен быть включен во все последние проекты Xamarin.iOS. Чтобы добавить новый файл Entitlements.plist, выполните действия, описанные в руководстве Работа с правами .

      Чтобы задать права, сделайте следующее:

      • Visual Studio для Mac
      • Visual Studio

      Дважды щелкните файл Entitlements.plist на панели решения, чтобы открыть редактор Entitlements.plist:

      Редактор Entitlements.plst

      В разделе Кошелек выберите параметр Включить кошелек .

      Включение прав на использование кошелька

      По умолчанию приложение разрешает все типы проходов. Однако можно ограничить приложение и разрешить только подмножество типов командных проходов. Чтобы включить этот параметр, выберите Разрешить подмножество командных типов проходов и введите идентификатор типа прохода для подмножества, которое вы хотите разрешить.

      Дважды щелкните файл Entitlements.plist , чтобы открыть исходный XML-файл.

      Чтобы добавить право на кошелек, задайте свойству значение Passbook Identifiers в раскрывающемся списке, чтобы автоматически задать тип Array . Затем задайте строковое значение $(TeamIdentifierPrefix)* :

      Включение прав на использование кошелька

      Это позволит вашему приложение работать со всеми типами карт. Чтобы ограничить работу приложения только с подмножеством типов карт, установите следующее значение строки:

      Где pass.$(CFBundleIdentifier) — идентификатор прохода, созданный ранее

      Отладка

      При возникновении проблем с развертыванием приложения проверка, что используется правильный профиль подготовки и что Entitlements.plist выбран в качестве файла настраиваемых прав в параметрахподписывания пакета iPhone.

      Если при развертывании возникает эта ошибка:

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

      pass-type-identifiers массив прав является неправильным (или не соответствует профилю подготовки). Убедитесь в правильности идентификаторов типа pass и идентификатора команды.

      Классы

      Следующие классы PassKit доступны для приложений для доступа к проходам:

      • PKPass — экземпляр Pass.
      • PKPassLibrary — предоставляет API для доступа к проходам на устройстве.
      • PKAdd PassViewController — используется для отображения прохода для сохранения пользователем в кошельке.
      • PKAdd PassViewControllerDelegate — разработчики Xamarin.iOS

      Пример

      См. проект PassLibrary в примере кода для этой статьи. В нем показаны следующие распространенные функции, которые потребуются в приложении-компаньоне кошелька:

      Убедитесь, что кошелек доступен

      Кошелек недоступен на iPad, поэтому приложения должны проверка, прежде чем пытаться получить доступ к функциям PassKit.

      if (PKPassLibrary.IsAvailable) < // create an instance and do stuff. >

      Создание экземпляра библиотеки передачи

      Библиотека PassKit не является отдельной. Приложения должны создавать и хранить экземпляры для доступа к API PassKit.

      if (PKPassLibrary.IsAvailable) < library = new PKPassLibrary (); // do stuff. >

      Получение списка проходов

      Приложения могут запрашивать список проходов из библиотеки. Этот список автоматически фильтруется по PassKit, поэтому вы можете видеть только проходы, созданные с идентификатором команды и перечисленные в ваших правах.

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

      Обратите внимание, что симулятор не фильтрует список возвращенных проходов, поэтому этот метод всегда следует тестировать на реальных устройствах. Этот список можно отобразить в UITableView. Пример приложения выглядит следующим образом после добавления двух купонов:

      Пример приложения выглядит следующим образом после добавления двух купонов

      Отображение проходов

      Ограниченный набор сведений доступен для отрисовки проходов в приложениях-компаньонах.

      Выберите из этого набора стандартных свойств, чтобы отобразить списки проходов, как это делается в примере кода.

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

      В примере эта строка отображается как оповещение:

      Оповещение

      Вы также можете использовать LocalizedValueForFieldKey() метод для получения данных из полей в разработанных вами проходах (так как вы будете знать, какие поля должны присутствовать). В примере кода это не показано.

      Загрузка прохода из файла

      Так как пропуск можно добавить в Кошелек только с разрешения пользователя, необходимо предоставить контроллер представления, чтобы позволить ему принять решение. Этот код используется в кнопке Добавить в примере для загрузки готового прохода, внедренного в приложение (его следует заменить подписанным):

      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); 

      Этот проход предоставляется с параметрами «Добавить» и «Отмена «:

      Проход с параметрами

      Замена существующего прохода

      Замена существующего прохода не требует разрешения пользователя, однако она завершится ошибкой, если этот проход еще не существует.

      if (library.Contains (newPass))

      Изменение прохода

      PKPass не является изменяемым, поэтому вы не можете обновить объекты передачи в коде. Чтобы изменить данные в проходе, приложение должно иметь доступ к веб-серверу, который может вести запись проходов и создавать новый файл pass с обновленными значениями, которые приложение может скачать.

      Создание файла передачи должно выполняться на сервере, так как пропуска должны быть подписаны сертификатом, который должен быть частным и безопасным.

      После создания обновленного файла передачи Replace используйте метод для перезаписи старых данных на устройстве.

      Отображение прохода для сканирования

      Как отмечалось ранее, только кошелек может отображать проход для сканирования. Pass можно отобразить с помощью метода , OpenUrl как показано ниже.

      Получение уведомлений об изменениях

      Приложения могут прослушивать изменения, внесенные в библиотеку pass, с помощью PKPassLibraryDidChangeNotification . Изменения могут быть вызваны уведомлениями, запускающими обновления в фоновом режиме, поэтому рекомендуется прослушивать их в приложении.

      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 

      Важно передать экземпляр библиотеки при регистрации для уведомления, так как PKPassLibrary не является одноэлементным.

      Обработка сервера

      Подробное обсуждение создания серверного приложения для поддержки PassKit выходит за рамки область этой вводной статьи.

      См. раздел dotnet-passbook открытый код серверном коде C#.

      Push-уведомления

      Подробное обсуждение использования push-уведомлений для обновления пропусков выходит за рамки область этой вводной статьи.

      Вам потребуется реализовать rest-подобный API, определенный Apple, чтобы отвечать на веб-запросы от Wallet, когда требуются обновления.

      Дополнительные сведения см. в руководстве Apple По обновлению pass .

      Итоги

      В этой статье представлен passKit, описаны некоторые причины, по которым он полезен, и описаны различные части, которые необходимо реализовать для полного решения PassKit. В ней описаны шаги, необходимые для настройки учетной записи разработчика Apple для создания проходов, процесс создания прохода вручную, а также способы доступа к API PassKit из приложения Xamarin.iOS.

      Связанные ссылки

      • Кошелек для разработчиков
      • Пример PassKit
      • Руководство разработчика по Кошельку
      • Платформы — Apple Pay и Кошелек (видео WWDC)
      • Справочник по PassKit Framework
      • Справочник по веб-службе Passbook
      • Сведения о файлах передачи
      • dotnet-passbook— библиотека с открытым исходным кодом для создания пакетов кошелька iOS.
      • Введение в iOS 6

    Добавить комментарий

    Ваш адрес email не будет опубликован. Обязательные поля помечены *