У меня есть общее c обычное NodeJS приложение, к которому имеют доступ несколько пользователей. Пользователи идентифицируются по пути. Например: https://someapp.web.app/abc
может быть одним путем, а https://someapp.web.app/def
может быть другим путем.
На пути сервера NodeJS I send
тот же серверный код, передав параметры пути в программу. Маршрут выглядит примерно так:
app.get('/*', async (req, res) => {
...
locals.path = req.path;
...
res.render('index', locals);
}
В приведенном выше примере index
- это шаблон, который использует локальные данные для настройки
Я бы хотел, чтобы для каждого пути был отдельный manifest и связанные с ним значки, и что на одном устройстве (телефоне или рабочем столе) возможны несколько установок. Таким образом, https://someapp.web.app/abc
будет одним значком, а https://someapp.web.app/def
- другим значком.
У меня возникли трудности с размещением и определением области действия манифеста и работника службы. Он всегда добавляет только один значок (первый установленный путь) на главный экран или рабочий стол. Мои настройки:
В папке publi c (root) у меня есть каждый манифест, а именно. abc-manifest.json
и def-manifest.json
и общий sw.js
.
abc-manifest.json
:
'scope': '/abc',
'start_url': '/abc',
...
Доступ к сервис-воркеру из индекса. js - :
if (navigator.serviceWorker) {
navigator.serviceWorker.register('sw.js')
.then(function (registration) {
console.log('ServiceWorker registration succeeded');
}).catch(function (error) {
console.log('ServiceWorker registration failed:', error);
});
}
Я попытался изменить пути к области видимости и start_url на /
, но это не сработало. Поскольку все запросы к пути publi c являются общими и не входят в виртуальный путь /abc
, я не могу понять, как заставить это работать.
Спасибо