과거의 유산을 PWA 대응 한 것은 없음

과거에 만든 빌어 먹을 앱을 PWA 대응으로 만들기



아직도 사쿠라 인터넷의 렌탈 서버에서는 Python3계 움직이지 않습니다. 하지만, 뭐 과거에 만든 빌어 먹을 어플리케이션을 어떻게든 하고 싶다. 우선 PWA 대응의 연습에 사용하면 좋지 않을까 생각하고 시작했습니다.

준비



필요한 파일 세트 정보



· index.html 엔드 포인트
· manifest.json 매니페스트가 작성된 파일
· service-worker.js 다양한 처리를 작성하는 사람
· icon.png 아이콘

서버 디렉토리 스쿠쇼



기본적으로 이미 다른 사람들이 설명했기 때문에,
세세한 설명은 모두 생략합니다.

manifest.json

{
    "short_name": "QRさん",
    "name": "QRコードクリエイトアプリ",
    "display": "standalone",
    "start_url": "index.html",
    "background_color": "#333",
    "theme_color": "#fff",
    "icons": [
        {
            "src": "icon.png",
            "sizes": "192x192",
            "type": "image/png"
        }
    ]
}


"sizes": "192x192"가 존재하지 않으면 배너가 추가되지 않는다고 합니다.

service-worker.js

self.addEventListener('install', function(e) {
  console.log('[ServiceWorker] Install');
});

self.addEventListener('activate', function(e) {
  console.log('[ServiceWorker] Activate');
});

self.addEventListener('fetch', function(event) {});

여기까지 할 수 있으면 나머지는 index.html에 이하를 추가할 뿐.

head 안에 이런 식으로 추가.

index.html

<head>
<link rel="manifest" href="manifest.json">
<meta name="apple-mobile-web-app-capable" content="yes">
<meta name="apple-mobile-web-app-status-bar-style" content="black">
<meta name="apple-mobile-web-app-title" content="QRさん">
<link rel="apple-touch-icon" href="icon.png">
</head>


Service-worker는 다음과 같이 작성합니다.

index.html

  <script>
  if ('serviceWorker' in navigator) {
      navigator.serviceWorker.register('service-worker.js').then(function(registration) {
          console.log('ServiceWorker registration successful with scope: ', registration.scope);
      }).catch(function(err) {
          console.log('ServiceWorker registration failed: ', err);
      });
  }
  </script>

덧붙여서 SSL화되어 있지 않은 경우는 사용할 수 없습니다.

PWA 대응 성공 후



이런 식으로 홈에 추가하게 됩니다.

홈에 추가하면 앱 같은 거동이 되는 것은 재미있군요.



PWA 대응 진행해 이것 정말로 홈에 추가할 수 있을까?
라는 불안은 Chrome의 도구로 확인 가능합니다.



이를 바탕으로 Wordpress 사이트와 블로그도 한쪽 끝에서 PWA 대응해 보았습니다.

좋은 웹페이지 즐겨찾기