0

Wie kann ich dem Browser mitteilen, das Cache-Manifest zu verwenden, wenn der Browser Service-Mitarbeiter nicht unterstützt?Wie kann ich dem Browser mitteilen, das Cache-Manifest zu verwenden, wenn der Browser Service-Mitarbeiter nicht unterstützt?

Ich habe eine Angular 4 App, die offline ausgeführt werden muss. Service-Mitarbeiter erledigen den Job hervorragend, aber Safari wird nicht unterstützt. Dies ist ein erforderlicher Browser, auf dem er ausgeführt werden muss.

Ich brauche eine Cache-Manifest-Datei zu erzeugen, wenn Service-Mitarbeiter nicht durch den Browser dann für den Browser unterstützt wird, um die Cache-Manifest-Datei zu verwenden, sobald der Browser

aktuelle Code (Typoskript) offline

geht:

if ('serviceWorker' in navigator) { 
    navigator.serviceWorker.register('../../service-worker.js').then(function(registration) { 
    //TODO: Implement Logging 
    }).catch(function(err) { 
    //TODO: Implement Logging 
    }); 
} else { 
    //Not currently supported on Internet explorer, Safari, IE Mobile and Safari Mobile. Use old Application Caching instead. 
    console.log("Not Supported"); 
    //Use cache manifest 
} 

Antwort

1

Wie wäre es, nur ein Element <link> in der else-Anweisung mit allen erforderlichen Eigenschaften der Manifest-Datei zu erstellen? Ich denke, Sie, dass ein Teil des Skripts setzen müssen, um in der <head>

const linkMeta = document.createElement('link'); 
linkMeta.setAttribute('rel', 'manifest'); 
linkMeta.setAttribute('href', '/manifest.webmanifes'); 

und hängen Sie ihn an die <head>

+0

Können Sie dies in Typoskript tun? –

+0

natürlich ... in TS-Dateien können Sie Vanille JS schreiben. Denn das "Skript", das im Kopf ist, ist etwas anderes ... benutzen Sie ein JS-Framework? – DrNio

+0

Ich meinte damit https://developer.mozilla.org/en-US/docs/Web/API/Document/createElement – DrNio

0

Die AppCache Manifest von iOS unterstützt wird. So haben wir Websites in den letzten zehn Jahren offline arbeiten lassen. Wenn eine Seite auf ein appCache-Manifest und einen Service-Mitarbeiter verweist, ignorieren Browser, die Service-Mitarbeiter unterstützen, appCache.

Auch ich denke, Sie verwechseln Web-Manifest mit AppCache-Manifest. Sie sind zwei verschiedene Dinge. appCache verwaltet, wie Dateien für den Offline-Modus zwischengespeichert werden. Eine Web-Manifest-Datei stellt dem Browser Metadaten zur Verfügung, damit er weiß, wie er Ihre Website brandmarken und rendern kann, sobald sie dem Bildschirm hinzugefügt wurde.

FWIW Ich habe den Aufbau offline/mobile erste Web-Anwendungen, die rivalisierenden native Apps auf iOS AppCache und localstorage/IndexedDB etwa seit 2010 Also Sie absolut es tun können :)

Dies ist eine Präsentation gab ich Velocity vor ein paar Jahren https://youtu.be/GKxkzu0pHUc Es könnte Ihnen helfen.

Verwandte Themen