Дополнительные детали: < /p>
Я пробовал два разных телефона: не работать < /li>
Версия iOS: 17.4 < /li>
Да, я добавил PWA в свой Главный экран < /li>
< /ul>
Странно то, что я получаю событие push. Итак, Worker.js работает нормально. Но проблема в том, когда показывает всплывающее окно, например. Self.Registration.Shownotification. Я пробовал много вещей и застрял с этим. < /P>
Кто -нибудь еще испытал это? Подробная информация о коде ниже < /p>
Вот как настраивается my next.config.js: < /p>
Код: Выделить всё
const isDev = process.env.NODE_ENV === 'development'
const withPWA = require('next-pwa')( {
dest: "public",
sw: "sw.js",
register: true,
skipWaiting: true,
disable: isDev
});
const nextConfig = {
reactStrictMode: true,
};
module.exports = withPWA(nextConfig);
< /code>
Как я настраиваю валистские данные: < /p>
webpush.setVapidDetails(
"mailto:[email protected]",
vapidKeys.publicKey,
vapidKeys.privateKey
);
< /code>
Это то, что выглядит мой рабочий.self.addEventListener("push", async (e) => {
try {
const { message, body, icon } = JSON.parse(e.data.text());
// Notify the main thread to play sound
const clients = await self.clients.matchAll();
clients.forEach(client => {
client.postMessage({
type: 'PLAY_SOUND'
});
});
e.waitUntil(
self.registration.showNotification(message)
);
} catch (error) {
// Send error log to the main thread
self.clients.matchAll().then(clients => {
clients.forEach(client => {
client.postMessage({
type: 'ERROR',
message: `Error in push event: ${error.message}`
});
});
});
}
});
self.addEventListener("notificationclick", (event) => {
event.preventDefault()
event.notification.close();
event.waitUntil(
self.clients.matchAll({
type: "window",
}).then((clientList) => {
for (const client of clientList) {
if (client.url === "/" && "focus" in client)
return client.focus();
}
if (clients.openWindow) return clients.openWindow("/");
})
);
});
< /code>
Я пробовал на двух разных устройствах iPhone. Я пробовал Android (работает), попробовал на Mac OS (работает). < /P>
Я попытался отладить контекст сафари на iOS. Я вижу, что SW.JS загружается должным образом, а журналы консоли работают (оно даже запускает пользовательское событие, которое я использовал для отладки)
Но я думаю, что проблема заключается в показании показателя
Подробнее здесь: https://stackoverflow.com/questions/789 ... roid-web-m