Как указать значки в manifest.json?

Как указать иконки в manifest.json? Кажется, что некоторые используют массив, а некоторые используют словарь. Например:

https://developer.chrome.com/webstore/get_started_simple

"icons": {
   "128": "icon_128.png"
},

Но в этом источнике они используют это так:

https://developers.google.com/web/updates/2014/11/Support-for-installable-web-apps-with-webapp-manifest-in-chrome-38-for-Android?hl=en

  "icons": [
    {
      "src": "launcher-icon-2x.png",
      "sizes": "96x96",
      "type": "image/png"
    },
    {
      "src": "launcher-icon-3x.png",
      "sizes": "144x144",
      "type": "image/png"
    },
    {
      "src": "launcher-icon-4x.png",
      "sizes": "192x192",
      "type": "image/png"
    }
  ],

Если я попытаюсь установить свое веб-приложение как расширение Chrome и использую последний формат, я получаю эту ошибку:

Поэтому я думаю, мне нужно использовать первый формат для этого. Однако, если я попытаюсь установить свое приложение в качестве прогрессивного веб-приложения в Android, потребуется более поздний формат...


comment
Насколько я понимаю, веб-приложения = chrome-apps ≠ chrome-extensions. Что ты пытаешься сделать?   -  person Teepeemm    schedule 09.02.2016
comment
@Teepeemm Итак, у меня есть веб-приложение. Просто веб-сайт, я думаю, вы могли бы сказать, просто URL-адрес, который люди могут ввести в браузере. Поэтому я хочу, чтобы люди установили это у себя дома на Android. Но я также хочу, чтобы он был в Интернет-магазине Chrome. developer.chrome.com/webstore/get_started_simple › У вас есть веб-приложение? Следуйте этому руководству, чтобы добавить существующее веб-приложение в Интернет-магазин Chrome. По той ссылке   -  person Kasper    schedule 09.02.2016
comment
Как это связано с Android? Пожалуйста, удалите ненужные теги.   -  person Reaz Murshed    schedule 12.02.2016
comment
@ReazMurshed Речь идет о том, какой синтаксис манифеста вам нужен для установки прогрессивного веб-приложения в Android.   -  person Kasper    schedule 13.02.2016


Ответы (1)


Короткий ответ: вам нужны оба. Это два разных файла манифеста, которые используются для разных целей и находятся в разных местах.

Для Интернет-магазина Chrome вы создадите манифест локально на своем компьютере, следуя руководству по началу работы. Этот манифест и изображение значка будут добавлены в zip-файл и загружены в магазин.

"icons": {
  "128": "icon_128.png"
}

Для устанавливаемые веб-приложения вам необходимо создать файл манифеста, загрузить его на свой веб-сайт вместе с изображениями, а затем обновить HTML-страницы, чтобы они ссылались на манифест на вашем веб-сайте.

  "icons": [
    {
      "src": "launcher-icon-2x.png",
      "sizes": "96x96",
      "type": "image/png"
    },
    {
      "src": "launcher-icon-3x.png",
      "sizes": "144x144",
      "type": "image/png"
    },
    {
      "src": "launcher-icon-4x.png",
      "sizes": "192x192",
      "type": "image/png"
    }
  ]
person abraham    schedule 10.02.2016
comment
Можно ли размещать manifest.json не в корне? Мы поместили manifest.json и значки в content/icons/.. Каким тогда будет src для значков? - person Nick N.; 22.06.2016
comment
src относится к каталогу, где находится manifest.json. Итак, если у вас есть img foo.png в img, вы должны использовать "src": "img/foo.png". - person abraham; 22.06.2016