首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Android PWA我该如何处理我的清单和服务工作者?

Android PWA我该如何处理我的清单和服务工作者?
EN

Stack Overflow用户
提问于 2018-07-26 21:20:47
回答 1查看 356关注 0票数 0

我有一个web应用程序,我想通知用户在Android上查看时下载。我使用PWA Builder来构建我的服务工作者和清单:https://www.pwabuilder.com/

我现在有了一个清单文件,我是否可以将其上传到我的根目录?

清单:

代码语言:javascript
复制
{
    "dir": "ltr",
    "lang": "en",
    "name": "Seek Adventure",
    "scope": "/",
    "display": "browser",
    "start_url": "https://www.seekadventure.net/",
    "short_name": "SeekAdventure",
    "theme_color": "#ff8040",
    "description": "An #optoutside forum for anyone looking for help planning there next outdoor adventure or wants to share their adventures with others!",
    "orientation": "any",
    "background_color": "transparent",
    "related_applications": [],
    "prefer_related_applications": false,
    "icons": [
        {
            "src": "/images/assets/favicon-glzu44cb.png",
            "type": "image/png",
            "sizes": "64x64"
        },
        {
            "src": "/images/c52cd81f-b772-8db2-4964-5780e9748729.webPlatform.png",
            "sizes": "44x44",
            "type": "image/png"
        },
        {
            "src": "/images/3fd8d17f-4da0-000c-0914-88f09a62a071.webPlatform.png",
            "sizes": "48x48",
            "type": "image/png"
        },
        {
            "src": "/images/fdf7841f-c005-e322-4e41-d9b997beb0d2.webPlatform.png",
            "sizes": "1240x600",
            "type": "image/png"
        },
        {
            "src": "/images/1b53345e-9214-10f9-3b27-d9a11d1a6362.webPlatform.png",
            "sizes": "300x300",
            "type": "image/png"
        },
        {
            "src": "/images/dc7a39e4-e3ad-9489-5fe1-65f029c4f5a8.webPlatform.png",
            "sizes": "150x150",
            "type": "image/png"
        },
        {
            "src": "/images/934dcf12-e11d-2f60-17a4-cf7529240c69.webPlatform.png",
            "sizes": "88x88",
            "type": "image/png"
        },
        {
            "src": "/images/85b5b747-256b-049a-425b-f8d57c110834.webPlatform.png",
            "sizes": "24x24",
            "type": "image/png"
        },
        {
            "src": "/images/0f323aec-4450-d0c3-623c-f35c9edcdd08.webPlatform.png",
            "sizes": "50x50",
            "type": "image/png"
        },
        {
            "src": "/images/03236d66-5cdf-a8a6-73f9-ecfe05b08fcc.webPlatform.png",
            "sizes": "620x300",
            "type": "image/png"
        },
        {
            "src": "/images/2a1f7b69-0b45-32d9-ec15-a9ec2de16a35.webPlatform.png",
            "sizes": "192x192",
            "type": "image/png"
        },
        {
            "src": "/images/5585e3aa-2696-082b-804b-f087d8923570.webPlatform.png",
            "sizes": "144x144",
            "type": "image/png"
        },
        {
            "src": "/images/c1943668-4dcf-fe5b-6ae4-a6ebc4f9f99b.webPlatform.png",
            "sizes": "96x96",
            "type": "image/png"
        },
        {
            "src": "/images/f37abd30-b572-4008-f307-8c0c674972ec.webPlatform.png",
            "sizes": "72x72",
            "type": "image/png"
        },
        {
            "src": "/images/737282cf-e911-bd86-39dc-87b45b7a3a5b.webPlatform.png",
            "sizes": "36x36",
            "type": "image/png"
        },
        {
            "src": "/images/dd79a596-ca4f-6a28-9c00-8b8038a8fa88.webPlatform.png",
            "sizes": "1024x1024",
            "type": "image/png"
        },
        {
            "src": "/images/3be7d34f-ba7b-ecb5-579d-467cacd866c4.webPlatform.png",
            "sizes": "180x180",
            "type": "image/png"
        },
        {
            "src": "/images/51578c8b-2898-5b6c-f935-21dea3f1cbf5.webPlatform.png",
            "sizes": "152x152",
            "type": "image/png"
        },
        {
            "src": "/images/535b042a-2502-3835-765b-923293ac8bbd.webPlatform.png",
            "sizes": "120x120",
            "type": "image/png"
        },
        {
            "src": "/images/f0ab6a28-2fdd-3ca9-6882-5d512562629d.webPlatform.png",
            "sizes": "76x76",
            "type": "image/png"
        }
    ]
}

它还为我提供了下面的几个服务工作者文件。

pwabuilder-sw.js:

代码语言:javascript
复制
//This is the "Offline page" service worker

//Install stage sets up the offline page in the cache and opens a new cache
self.addEventListener('install', function(event) {
  var offlinePage = new Request('offline.html');
  event.waitUntil(
    fetch(offlinePage).then(function(response) {
      return caches.open('pwabuilder-offline').then(function(cache) {
        console.log('[PWA Builder] Cached offline page during Install'+ response.url);
        return cache.put(offlinePage, response);
      });
  }));
});

//If any fetch fails, it will show the offline page.
//Maybe this should be limited to HTML documents?
self.addEventListener('fetch', function(event) {
  event.respondWith(
    fetch(event.request).catch(function(error) {
      console.error( '[PWA Builder] Network request Failed. Serving offline page ' + error );
      return caches.open('pwabuilder-offline').then(function(cache) {
        return cache.match('offline.html');
      });
    }
  ));
});

//This is a event that can be fired from your page to tell the SW to update the offline page
self.addEventListener('refreshOffline', function(response) {
  return caches.open('pwabuilder-offline').then(function(cache) {
    console.log('[PWA Builder] Offline page updated from refreshOffline event: '+ response.url);
    return cache.put(offlinePage, response);
  });
});

pwabuilder-sw-register.js:

代码语言:javascript
复制
//This is the "Offline page" service worker

//Add this below content to your HTML page, or add the js file to your page at the very top to register service worker
if (navigator.serviceWorker.controller) {
  console.log('[PWA Builder] active service worker found, no need to register')
} else {
  //Register the ServiceWorker
  navigator.serviceWorker.register('pwabuider-sw.js', {
    scope: './'
  }).then(function(reg) {
    console.log('Service worker has been registered for scope:'+ reg.scope);
  });
}

如果清单被上传到我的web服务器的根目录,我是否也要将这两个javascript文件也上传到根目录?

如果是这样,我是否只需要编辑html文件中的头文件,并包含这两行以指向javascript文件?

代码语言:javascript
复制
<script src="pwabuilder-sw.js"></script> 
<script src="pwabuilder-sw-register.js"></script> 
EN

回答 1

Stack Overflow用户

发布于 2018-07-27 01:13:22

实际上,您可以将清单放到根目录中,以便在每个应用程序页面中显示它,也可以只将它放在您想要显示它的路径中。

关于最后一个问题,如果您需要将.js文件添加到您的服务器,请确保它们不在与其他.js文件相同的位置。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/51539898

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档