123456789101112131415161718 |
- // This optional code is used to register a service worker.
- // register() is not called by default.
- // This lets the app load faster on subsequent visits in production, and gives
- // it offline capabilities. However, it also means that developers (and users)
- // will only see deployed updates on subsequent visits to a page, after all the
- // existing tabs open on the page have been closed, since previously cached
- // resources are updated in the background.
- // To learn more about the benefits of this model and instructions on how to
- // opt-in, read http://bit.ly/CRA-PWA
- const isLocalhost=!!('localhost'===window.location.hostname||// [::1] is the IPv6 localhost address.
- '[::1]'===window.location.hostname||// 127.0.0.1/8 is considered localhost for IPv4.
- window.location.hostname.match(/^127(?:\.(?:25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)){3}$/));export function register(a){if('production'===process.env.NODE_ENV&&'serviceWorker'in navigator){// The URL constructor is available in all browsers that support SW.
- const b=new URL(process.env.PUBLIC_URL,window.location.href);if(b.origin!==window.location.origin)// Our service worker won't work if PUBLIC_URL is on a different origin
- // from what our page is served on. This might happen if a CDN is used to
- // serve assets; see https://github.com/facebook/create-react-app/issues/2374
- return;window.addEventListener('load',()=>{const b=`${process.env.PUBLIC_URL}/service-worker.js`;isLocalhost?(checkValidServiceWorker(b,a),navigator.serviceWorker.ready.then(()=>{console.log('This web app is being served cache-first by a service worker. To learn more, visit http://bit.ly/CRA-PWA')})):registerValidSW(b,a)})}}function registerValidSW(a,b){navigator.serviceWorker.register(a).then(a=>{a.onupdatefound=()=>{const c=a.installing;null==c||(c.onstatechange=()=>{'installed'===c.state&&(navigator.serviceWorker.controller?(console.log('New content is available and will be used when all tabs for this page are closed. See http://bit.ly/CRA-PWA.'),b&&b.onUpdate&&b.onUpdate(a)):(console.log('Content is cached for offline use.'),b&&b.onSuccess&&b.onSuccess(a)))})}}).catch(a=>{console.error('Error during service worker registration:',a)})}function checkValidServiceWorker(a,b){// Check if the service worker can be found. If it can't reload the page.
- fetch(a).then(c=>{// Ensure service worker exists, and that we really are getting a JS file.
- const d=c.headers.get('content-type');404===c.status||null!=d&&-1===d.indexOf('javascript')?navigator.serviceWorker.ready.then(a=>{a.unregister().then(()=>{window.location.reload()})}):registerValidSW(a,b)}).catch(()=>{console.log('No internet connection found. App is running in offline mode.')})}export function unregister(){'serviceWorker'in navigator&&navigator.serviceWorker.ready.then(a=>{a.unregister()})}
|