Я создал шлюз API, который запускает лямбда-функцию. Эта лямбда-функция генерирует файл pkpass (проход Apple Wallet). Я использовал nodejs для его реализации. Файл корректно загружается из браузера на мой телефон Android и открывается в аналогичном приложении для пропусков, но в iphone этого не происходит. Тип содержимого для ответа «application / vnd.apple.pkpass», как я прочитал в документации Apple для Apple Wallet. Кто-нибудь знает способ обойти эту проблему? В Safari и Chrome появляется сообщение об ошибке после запуска этой службы. Я также прочитал, что вышеуказанный тип контента не совместим с шлюзом aws api, но эти ответы устарели.
Я запускаю приведенный выше код с помощью экспресс-локально, и все работает отлично.
Я знаю, что этот вопрос задавался в прошлом, и я сожалею, но я исследовал много дней на многих сайтах, но нетудачи.
Для создания файла pkpass я использую модуль passbook npm, этот файл записывается в папку tmp, а затем я читаю его, поэтому могу предоставить следующий ответ
fs.readFile('/tmp/mypass.pkpass', (err, data) => {
console.log('Reading file...');
if (err) {
console.error(err);
reject(err);
}
else {
console.log(data);
resolve({
isBase64Encoded: true,
statusCode: 200,
headers: {
"Content-Type": "application/vnd.apple.pkpass",
"Content-Disposition": "attachment; filename=\"pass.pkpass\"",
"Content-Transfer-Encoding": "binary",
"Content-Description": "File Transfer"
},
body: data.toString('base64')
});
}
});