【해결 방법】iOS 단말기에서 PWA의 스플래시 화면이 새하얗게 된다

11336 단어 iOSPWA

문제



iOS 단말기에서 PWA(프로그레시브 웹 앱)의 스플래시 화면이 새하얗게 되어 아이콘, 앱 이름 등이 표시되지 않는다.

버전


  • iOS 11.3

  • 상세


    manifest.json에서 Name, background_color, icon을 설정하면,
  • Android의 경우 위와 결합 된 스플래시 화면이 표시됩니다
  • iOS의 경우 새하얀 화면이 표시됨



  • manifest.json



    manifest.json
    {
      "name": "Weather PWA",
      "short_name": "Weather",
      "icons": [{
        "src": "images/icons/icon-128x128.png",
          "sizes": "128x128",
          "type": "image/png"
        }, {
          "src": "images/icons/icon-144x144.png",
          "sizes": "144x144",
          "type": "image/png"
        }, {
          "src": "images/icons/icon-152x152.png",
          "sizes": "152x152",
          "type": "image/png"
        }, {
          "src": "images/icons/icon-192x192.png",
          "sizes": "192x192",
          "type": "image/png"
        }, {
          "src": "images/icons/icon-256x256.png",
          "sizes": "256x256",
          "type": "image/png"
        }],
      "start_url": "/index.html",
      "display": "standalone",
      "background_color": "#3E4EB8",
      "theme_color": "#2F3BA2"
    }
    

    해결 방법



    html(head) 내의 링크 태그rel=apple-touch-startup-image로 스플래쉬 이미지를 지정한다.

    index.html
    <!DOCTYPE html>
    <html>
    <head>
      <!-- 省略 -->
    
      <!-- Add to splash screen for Safari on iOS -->
      <link rel="apple-touch-startup-image" href="images/splash/launch-640x1136.png" media="(device-width: 320px) and (device-height: 568px) and (-webkit-device-pixel-ratio: 2) and (orientation: portrait)">
      <link rel="apple-touch-startup-image" href="images/splash/launch-750x1334.png" media="(device-width: 375px) and (device-height: 667px) and (-webkit-device-pixel-ratio: 2) and (orientation: portrait)">
      <link rel="apple-touch-startup-image" href="images/splash/launch-1242x2208.png" media="(device-width: 414px) and (device-height: 736px) and (-webkit-device-pixel-ratio: 3) and (orientation: portrait)">
      <link rel="apple-touch-startup-image" href="images/splash/launch-1125x2436.png" media="(device-width: 375px) and (device-height: 812px) and (-webkit-device-pixel-ratio: 3) and (orientation: portrait)">
      <link rel="apple-touch-startup-image" href="images/splash/launch-1536x2048.png" media="(min-device-width: 768px) and (max-device-width: 1024px) and (-webkit-min-device-pixel-ratio: 2) and (orientation: portrait)">
      <link rel="apple-touch-startup-image" href="images/splash/launch-1668x2224.png" media="(min-device-width: 834px) and (max-device-width: 834px) and (-webkit-min-device-pixel-ratio: 2) and (orientation: portrait)">
      <link rel="apple-touch-startup-image" href="images/splash/launch-2048x2732.png" media="(min-device-width: 1024px) and (max-device-width: 1024px) and (-webkit-min-device-pixel-ratio: 2) and (orientation: portrait)">
    
      <!-- 省略 -->
    </head>
    <body>
      <!-- 省略 -->
    </body>
    </html>
    



    보충



    스플래시 이미지의 크기



    iOS 단말기의 기종마다 필요한 스플래시 이미지의 크기는 iOS Human Interface Guidelines에 게재되어 있다.

    Launch Screen - Icons and Images - iOS Human Interface Guidelines

    스케치



    Sketch로 Artboard를 작성할 때, AppleDevices 로부터 기종을 지정하면, 가이드 라인으로 지정된 스크린 사이즈의 Artboard가 작성되므로 스플래시 화상의 작성에 편리.



    샘플 코드



    NaokiIshimura/Qiita-PWA-iosSplashScreen

    참고



    Dave Hudson's Mediuim and GitHub


  • Progressive Web App Splash Screens – Dave Hudson – Medium
  • applification/pwa-splash-screens: Repo to support splash screens on Android and iOS for Progressive Web Apps

  • Google


  • 웹 앱 매니페스트  | Web  |  Google Developers
  • Configured For A Custom Splash Screen  |  Tools for Web Developers  |  Google Developers
  • 아이콘 및 브라우저 색상  | Web  |  Google Developers

  • Apple


  • Launch Screen - Icons and Images - iOS Human Interface Guidelines
  • Configuring Web Applications
  • 좋은 웹페이지 즐겨찾기