Постоянная проблема с уведомлением после обновления Apple PassIOS

Программируем под IOS
Ответить
Anonymous
 Постоянная проблема с уведомлением после обновления Apple Pass

Сообщение Anonymous »

Я пытаюсь заставить Apple Wallet показывать пользователю уведомление при обновлении его пропуска. Я следовал руководству Apple по добавлению веб-сервиса для обновления прохода, и взаимодействие между сервером Apple и моим сервером, похоже, работает.
При тестировании на моем iPhone он извлекает новый проход и обновляет соответствующие значения правильно, но мой телефон не показывает такое уведомление:
пример
Я указал значение измененияMessage с помощью '%@', но оно, похоже, не работает . Я не могу найти документацию Apple по отображению уведомлений. Примечание. При настройке поля «relevantDate» на моем экране отображается уведомление, но только с отметкой времени (которой недостаточно): пример
Вот фрагмент содержимого JSON до и после обновления пропуска:
До:

Код: Выделить всё

"backFields": [
{
"key": "Message Field",
"label": "Message",
"value": "",
"changeMessage": "Changed to %@"
}
]
После:

Код: Выделить всё

"backFields": [
{
"key": "Message Field",
"label": "Message",
"value": "Test Message",
"changeMessage": "Changed to %@"
}
]
Чтобы отправить уведомление APN, я использую Pushy, и вот отправляемые мной полезные данные:

Код: Выделить всё

{
"aps": {
"badge": 1,
"alert": {
"body": "BODY",
"title": "Your pass has been updated"
},
"sound": "default"
}
}
Вот фрагмент полного файла pass.json, из которого я удалил личные поля и информацию:

Код: Выделить всё

{
"formatVersion":1,
"serialNumber":"xxxxx",
"passTypeIdentifier":"xxxxx",
"webServiceURL":"xxxxx/api",
"authenticationToken":"xxxxx",
"description":"Ticket-xxxxx",
"teamIdentifier":"xxxxx",
"organizationName":"xxxxx",
"foregroundColor":"rgb(0,0,0)",
"backgroundColor":"rgb(0,0,0)",
"labelColor":"rgb(0,0,0)",
"beacons":[

],
"locations":[

],
"barcodes":[
{
"format":"PKBarcodeFormatQR",
"message":"xxxxx",
"messageEncoding":"UTF-8"
}
],
"eventTicket":{
"headerFields":[

],
"primaryFields":[
{
"key":"event info",
"label":"Event label",
"value":"New value"
}
],
"secondaryFields":[
{
"key":"Number info",
"label":"Label num",
"value":"1"
}
],
"auxiliaryFields":[

],
"backFields":[
{
"key":"MessageField",
"label":"Message",
"value":"",
"changeMessage":"Changed to %@"
}
]
},
"associatedStoreIdentifiers":[

],
"associatedApps":[

],
"expirationDate":"2024-06-23T15:29:11.322531913Z",
"voided":false,
"sharingProhibited":false
}
Дайте мне знать, если вам нужна дополнительная информация или фрагменты кода.
Я попробовал следующее, чтобы решить проблему:
Полезная нагрузка APN
Я пытался изменить полезную нагрузку, отправленную в Apple, чтобы проверить, не пропало ли что-нибудь, но, поскольку пропуск обновляется правильно, я переместил чтобы протестировать другие возможности.
Уникальные сообщения
Из статьи: Как отправить пользовательское push-уведомление после Pass был обновлен в Apple Wallet? Я экспериментировал с различными комбинациями установки значения «changeMessage». Один из подходов заключался в создании случайной строки для значения каждый раз, поскольку кажется, что телефон вызывает конечную точку

Код: Выделить всё

/v1/passes/{passTypeIdentifier}/{serialNumber}
дважды при получении нового билета.
Соответствующая дата
Настройка поле «relevantDate», в котором на экране пользователя отображается уведомление, а не настраиваемое/настраиваемое сообщение.
Дата истечения срока действия
Я также пытался изменить дату истечения срока действия, но, похоже, это не играет роли.

Подробнее здесь: https://stackoverflow.com/questions/786 ... ass-update
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

Вернуться в «IOS»