web-dev-qa-db-fra.com

Travailleurs de service et iOS/Safari

Sur la page de Chromium sur les travailleurs des services, il est noté que 

Les employés de service ne sont pas pris en charge par Chrome sur iOS.

Je suppose qu’il peut être livré à iOS en utilisant des plugins Cordova. Existe-t-il un autre moyen d'utiliser Service Workers sur des périphériques iOS? 
Je suis inquiet du temps qui s'écoule entre l'envoi de la nouvelle version sur iOS et la nouvelle version de Cordova. 

Est-ce que quelqu'un sait si Chrome sur iOS va prendre en charge les prestataires de services à l'avenir? :)

35
Karol Klepacki

Bien que la réponse de Ian soit excellente au moment de sa publication (04.2015), cette question est devenue un point d’entrée important pour beaucoup de personnes intéressées par les travailleurs du service et Progressive Web Apps. La réponse est beaucoup plus large maintenant. 

Commentaires d'Apple

30.03.2018: Les techniciens de maintenance sont expédiés avec Safari 11.1. Bon travail! https://developer.Apple.com/library/content/releasenotes/General/WhatsNewInSafari/Articles/Safari_11_1.html

20.12.2017: Employés de service activés par défaut dans Safari Technology Preview 46 https://webkit.org/blog/8042/release-notes-for-safari-technology-preview- 46/

04.08.2017: Travaux officiellement en cours :) https://webkit.org/status/#specification-service-workers

07.2017: Plus de signaux positifs sur webkit-dev :

Les ingénieurs Apple de l'équipe WebKit ont été fortement impliqués dans les discussions sur les spécifications de ServiceWorkers au cours des dernières années. Un grand nombre de nos préoccupations concernant les spécifications ont été résolues, en particulier pour les travailleurs du service Fetch, qui ne vont généralement pas au-delà du nombre de pages qui les utilisent. Bien que nous n’ayons fait aucun travail de mise en œuvre, le terme "à l’étude" dans ce cas-ci est littéralement. Nous y pensons réellement.

06.2016: D'après Jake Archibald 'ServiceWorker est-il prêt?' le statut actuel d’iOS (Safari) est:

À l'étude , Brefs signaux positifs dans plan quinquennal .

Sachez que cela concerne tous les navigateurs sur iOS. En raison des limites imposées par Apple, Chrome sur iOS utilise WKWebView, le même moteur de rendu que Safari. Il ne s'agit que d'un encapsuleur minuscule, il est donc limité aux fonctionnalités actuelles. 

Ressources

L'endroit le plus reconnu pour suivre le statut actuel de l'agent de service est Jake Archibald 'ServiceWorker est-il prêt?' .

Il existe une autre ressource qui rassemble ces informations, fournissant davantage d'informations sur les différentes versions de Chromium, les plus populaires en Chine et couvrant certains détails supplémentaires: https://ispwaready.toxicjohann.com/

Des controverses

Un débat à grande échelle sur la participation d'Apple aux fonctionnalités Web modernes a été lancé après l'article de Nolan Lawson Safari est le nouveau IE (06/2015) dont le point principal était que

Ces dernières années, la stratégie d’Apple vis-à-vis du Web peut très bien être qualifiée de «négligence bienveillante».

L'argument principal de la partie adverse était que le prestataire de services et le reste des fonctionnalités hors ligne/PWA ne sont pas centrés sur le client - le centre du développement de Safari. 

Certaines personnes sont encore plus radicales, comme Greg Blass dans son article (07/2017) qui déclare que 

Apple considère les applications Web comme des citoyens de deuxième classe, car elles ne génèrent pas d’argent comme des applications natives dans l’app store.

Le point commun est qu'Apple est en retard sur les autres éditeurs (Chrome, Firefox, Edge) en développant des fonctionnalités qui améliorent l'expérience Web, mais a aussi une lenteur à résoudre les bugs critiques rendant certaines fonctionnalités techniquement inutilisables.

31
Karol Klepacki

Je ne sais pas si ou quand Chrome sur iOS prendra en charge Service Worker, mais c'est tout à fait possible aujourd'hui avec Cordova.

Le plug-in Service Worker on npm vous permettra d'utiliser l'API dans les applications Cordova sur iOS.

20
Ian Clelland

J'ai écrit un article appelant Apple sur le sujet:

https://m.phillydevshop.com/apples-refusal-to-support-progressive-web-apps-is-a-serious-detriment-to-future-we-web-e81b2be29676

Il a été retweeté par quelques personnes clés, puis publié sur les nouvelles des hackers, et a continué à avoir une activité intéressante sur Twitter. Une semaine plus tard, ils ont commencé le développement. Alors, restez à l'écoute, ça s'en vient!

7
Greg Blass

Service worker est disponible dans Safari 11.1, qui a été livré le 29 mars 2018 avec iOS 11.3 et macOS 10.13.4:

https://developer.Apple.com/library/content/releasenotes/General/WhatsNewInSafari/Articles/Safari_11_1.html

Remarque:

1
Johnny Oshika

Enfin, Apple a ajouté un support pour le service worker dans son TP. Vous pouvez en savoir plus sur le support PWA de safari ici

https://medium.com/awebdeveloper/progressive-web-apps-pwas-are-coming-to-a-safari-near-you-216812aba5a

Voici les informations de support détaillées du technicien de maintenance http://ispwaready.toxicjohann.com/

0
aWebDeveloper

Répondez à @mcl Si vous modifiez votre code dans le technicien:

self.addEventListener( 'install', function(){
  return self.skipWaiting( );
});

au code suivant, cela devrait fonctionner. J'ai également changé toutes les variables, alors il suffit de copier/coller.

self.addEventListener('install', event => {
  console.log('Attempting to install service worker and cache static assets');
  event.waitUntil(
    caches.open(FILES_CACHE)
    .then(cache => {
      return cache.addAll(urlsToCache);
    })
  );
});
0
zaffar

Vient de passer à High Sierra 13.4, livré avec Safari 11.1

J'ai essayé un site de démonstration PWA que je connais avec Safari 11.1

https://beebole.github.io/mobile-app-demo/

Déconnecté mon wifi, dur rechargé la page

J'ai eu le message

Vous n'avez pas internet, essayez notre liste de lecture hors ligne !!!!

Des pensées

0
mcl