Django PWA нельзя установить на Android

Я разработал простой проект django PWA (без опубликованного приложения django-pwa) для тестирования автономных функций. Я развернул свой проект на pythonanywhere: lecarrou.pythonanywhere.com. Когда я устанавливаю свое приложение на рабочий стол, оно становится доступным для установки (Chrome и Edge).

Но у меня возникают проблемы при попытке установки на мобильные устройства Android (Chrome, Edge, Firefox). Я протестировал множество конфигураций (последняя из которых соответствует структуре django-pwa), но у меня никогда не было возможности установить приложение, и событие beforeinstallprompt, похоже, не запускается. У меня есть build manifest.json, следующий "правилам". Я выполняю отладку с помощью Chrome DevTools :

  • Активирован сервисный работник
  • доступен манифест (отображение: автономное ; доступны значки ; start_url и scope: '/')

Вот столько тестов я провел :

  • console.log(window.matchMedia('режим отображения: автономный)).'соответствует) возвращает значение false
  • запускался вручную перед установкой, но не удалось выполнить

В течение нескольких дней я много раз открывал свое приложение в Chrome и переходил по нему.

Я понятия не имею, что происходит не так и как я могу решить эту проблему.

#serviceworker.js

const CACHE_NAME = "cdss-cache-v1";
const urlsToCache = [
    '/',
    '/cdss/select/',
    '/cdss/screening/',
    '/cdss/scoring/',
    '/cdss/recommandation/',
    '/static/css/styles.css',
    '/static/js/script.js',
    '/static/materialize/css/materialize.min.css',
    '/static/materialize/js/materialize.min.js',
    '/static/fonts/fonts.css',
    '/static/fonts/lobster-v30-latin-regular.woff2',
    '/static/fonts/material-icons-v143-latin-regular.woff2',
    '/static/pwa/images/icons/72x72.png',
    '/static/pwa/images/icons/96x96.png',
    '/static/pwa/images/icons/128x128.png',
    '/static/pwa/images/icons/144x144.png',
    '/static/pwa/images/icons/152x152.png',
    '/static/pwa/images/icons/192x192.png',
    '/static/pwa/images/icons/384x384.png',
    '/static/pwa/images/icons/512x512.png',
    '/static/pwa/images/icons/favicon.ico',
    // '/static/admin/'
    // ajoute toutes les routes et fichiers nécessaires pour le mode offline
];

self.addEventListener("install", function(event) {
    console.log("⚙️ Service Worker installé !");
    event.waitUntil(
        caches.open(CACHE_NAME)
            .then(function(cache) {
                return cache.addAll(urlsToCache);
            })
    );
});
self.addEventListener('activate', (event) => {
    console.log("✅ Service Worker activé !");
});
self.addEventListener('fetch', (event) => {
    console.log("🚀 Fetch event déclenché pour :", event.request.url);
    event.respondWith(fetch(event.request).catch(() => new Response("⚠️ Erreur de requête interceptée par Service Worker")));
});

#файл manifest.json

{
  "name": "CDSS Web",
  "short_name": "CDSSWeb",
  "description": "Clinical Decision Support System for TB",
  "start_url": "/",
  "scope": "/",
  "display": "standalone",
  "background_color": "#ffffff",
  "theme_color": "#317EFB",
  "icons": [
    {
      "src": "/static/pwa/images/icons/192x192.png",
      "sizes": "192x192",
      "type": "image/png"
    },
    {
      "src": "/static/pwa/images/icons/512x512.png",
      "sizes": "512x512",
      "type": "image/png"
    }
  ],
  "screenshots": [
    {
      "src": "/static/pwa/images/screenshot1.png",
      "sizes": "1080x1920",
      "type": "image/png",
      "form_factor": "wide"
    },
    {
      "src": "/static/pwa/images/screenshot2.png",
      "sizes": "1080x1920",
      "type": "image/png"
    }
  ],
  "dir": "auto",
  "lang": "en",
  "orientation": "any",
  "display_override": [
    "standalone",
    "window-controls-overlay",
    "fullscreen"
  ],
  "categories": [
    "health"
  ]
}
Вернуться на верх