Несколько QR-кодов в Apple Wallet Pass

Вопрос или проблема

Я хочу показать несколько 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-код.

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

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

Капча загружается...