Вопрос или проблема
Я хочу показать несколько QR-кодов на своем пропуске Apple Wallet, чтобы пользователь мог пролистывать их горизонтально и получать доступ к ним через один пропуск. Согласно документации, я передал массив штрих-кодов в pass.json, но по-прежнему отображается только 1 QR-код из нескольких переданных элементов. Что еще можно сделать, чтобы достичь такого поведения в пропуске?
Я добавил штрих-коды следующим образом:
"barcodes": [
{
"format": "PKBarcodeFormatQR",
"message": "QR Code 1: https://example.com/code1",
"messageEncoding": "iso-8859-1",
"altText": "QR Code 1"
},
{
"format": "PKBarcodeFormatQR",
"message": "QR Code 2: https://example.com/code2",
"messageEncoding": "iso-8859-1",
"altText": "QR Code 2"
}
]
Я ожидал, что пропуск отобразит все QR-коды, но он показывает только один QR-код.
Пропуск может отображать только один штрих-код. Свойство barcodes
в файле pass.json указывает массив штрих-кодов для поддержки различных устройств (например, устройства watchOS не могут отображать штрих-коды Code 128).
Из документации
Pass.Barcode
– Массив объектов, представляющих возможные штрих-коды на пропуске. Система использует первый отображаемый штрих-код для устройства.
Вы можете использовать свойства groupingIdentifier
и passTypeIdentifier
, чтобы несколько пропусков одного типа отображались как группа.
Ответ или решение
Создание множества QR-кодов на одном пропуске Apple Wallet, к сожалению, невозможно, так как текущая реализация Apple поддерживает отображение только одного штрих-кода (или QR-кода) на один пропуск. Хотя вы правильно указали массив barcodes
в вашем файле pass.json
, система использует только первый доступный для отображения штрих-код.
Как уже упоминалось в документации, свойство barcodes
позволяет указать несколько возможных штрих-кодов для обеспечения совместимости с различными устройствами. Однако для пользовательского интерфейса Apple Wallet это все равно будет означать, что отображается только один штрих-код.
Для решения вашей задачи вы можете рассмотреть возможность создания нескольких пропусков с использованием одного и того же идентификатора типа пропуска (passTypeIdentifier
) и идентификатора группировки (groupingIdentifier
). Таким образом, пользователи смогут просматривать все пропуска, связанные с одним идентификатором группировки, размахивая по горизонтали.
Пример структуры JSON для создания нескольких пропусков:
{
"passTypeIdentifier": "pass.com.example.multipleqrcodes",
"groupingIdentifier": "group1",
"barcodes": [
{
"format": "PKBarcodeFormatQR",
"message": "QR Code 1: https://example.com/code1",
"messageEncoding": "iso-8859-1",
"altText": "QR Code 1"
}
],
...
}
Создайте аналогичный проход для второго QR-кода:
{
"passTypeIdentifier": "pass.com.example.multipleqrcodes",
"groupingIdentifier": "group1",
"barcodes": [
{
"format": "PKBarcodeFormatQR",
"message": "QR Code 2: https://example.com/code2",
"messageEncoding": "iso-8859-1",
"altText": "QR Code 2"
}
],
...
}
После этого, при использовании Apple Wallet пользователи смогут просматривать и управлять несколькими пропусками, каждый из которых содержит свой QR-код.
Надеюсь, это поможет вам разобраться с вашей задачей. Если у вас возникнут дополнительные вопросы, не стесняйтесь задавать их!