Не удается получить значок заставки на Android Chrome PWA - PullRequest
0 голосов
/ 16 декабря 2018

Я создал PWA, который устанавливается правильно, со значком запуска.Я хочу другое изображение для заставки, поэтому я включил 192px и 512px png с разрешением 128dpi и перечислил их оба в manifest.json - однако мой заставка по-прежнему отображает значки запуска (которые я предоставил в 36, 48, 72, 96, 128, 144 px версии)

Как убедиться, что правильное изображение используется для заставки и значка средства запуска?

manifest.json:

{
  "short_name": "app",
  "name": "app",
  "icons": [
    {
      "src": "assets/pwa/android-launchericon-36-36.png",
      "sizes": "36x36",
      "type": "image/png"
    },
    {
      "src": "assets/pwa/android-launchericon-48-48.png",
      "sizes": "48x48",
      "type": "image/png"
    },
    {
      "src": "assets/pwa/android-launchericon-72-72.png",
      "sizes": "72x72",
      "type": "image/png"
    },
    {
      "src": "assets/pwa/android-launchericon-96-96.png",
      "sizes": "96x96",
      "type": "image/png"
    },
    {
      "src": "assets/pwa/android-launchericon-128-128.png",
      "sizes": "128x128",
      "type": "image/png"
    },
    {
      "src": "assets/pwa/android-launchericon-144-144.png",
      "sizes": "144x144",
      "type": "image/png"
    },
    {
      "src": "assets/pwa/android-launchericon-192-192.png",
      "sizes": "192x192",
      "type": "image/png"
    },
    {
      "src": "assets/pwa/splash-512-512.png",
      "sizes": "512x512",
      "type": "image/png"
    }
  ],
  "start_url": "./index.html",
  "display": "standalone",
  "theme_color": "#000000",
  "background_color": "#ffffff",
  "orientation": "portrait"
}

1 Ответ

0 голосов
/ 17 декабря 2018

Согласно этой документации , как вы уже знаете, Chrome выберет значок, который точно соответствует значку 128dp для этого устройства.

Обратите внимание, что dp(Плотно-независимые пиксели) отличается от dpi (точек на дюйм).Проще говоря, 128dpi не обязательно равен 128dp, что, скорее всего, является проблемой в вашем случае.

Этот SO ответ объясняет разницу между двумя скважинами.

Например, на экране 160dpi, 1dp == 1px == 1/160in, но на экране 240dpi, 1dp == 1.5px.Так что нет, 1dp != 1px.Существует только один случай, когда 1dp == 1px, и это на экране 160dpi.Физические единицы измерения, такие как дюймы, никогда не должны быть частью вашего дизайна, то есть, если вы не создаете линейку.

Простая формула для определения количества пикселей, для которых 1dp подходит, равна px = dp * (dpi / 160).

На основе этой простой формулы ваше 192px, 128dpi изображение имеет 240dp, а ваше 512px, 128dpi изображение имеет 640dp.Предполагая, что все ваши другие изображения также имеют 128dpi, Chrome, скорее всего, выберет ваше 96px изображение, так как оно имеет самые близкие значения dp к 128dp.

В заключение, для вашего 192px или 512px изображения должны иметь 128dp, они должны иметь 160dpi.

...