Манифест приложения

Нестандартно: Эта функция отсутствует в текущей версии стандартов W3C, но поддерживается на платформе Firefox OS. Хотя реализации могут измениться в будущем и не будут широко поддерживаться в разных браузерах, они подходят для использования в коде, предназначенном для приложений Firefox OS.

Важно: Этот документ относится к формату манифеста Firefox OS, а не к спецификации манифеста W3C, разработанной для кросс-браузерных прогрессивных веб-приложений.

Манифест приложения Firefox OS предоставляет информацию о приложении (например, имя, автора, значок и описание) в виде простого документа, который может использоваться как пользователями, так и магазинами приложений. Самое главное, он содержит список веб-API, которые нужны вашему приложению. Это позволяет пользователям принимать обоснованные решения о приложениях перед их установкой. Это одна из ключевых вещей, которая отличает приложение Firefox OS от веб-сайта.

Примечание: Браузеры, которые обрабатывают манифесты и позволяют устанавливать приложения Firefox OS, включают веб-среду выполнения. Это включает в себя ОС Firefox и более новые версии Firefox для Android и Firefox для настольных компьютеров.

Примечание: Вы можете найти информацию о манефесте на MANIFEST FAQ

В этом разделе подробно описываются критически важные детали, необходимые для создания и использования манифеста приложения.

Условные обозначения: имя файла, местоположение и формат

  • Имя файла: manifest.webapp (Вы должны использовать расширение .webapp)
  • Расположение: Ваше приложение в root-директории
  • Формат: JSON

Обработка пути

  • Внутренние пути для манифестов, значков и т. д. должны быть абсолютными от источника приложения, а не от корня приложения. Например, если ваш манифест находится по адресу http://www.mysite.com/myapp/manifest.webapp, путь установки будет /myapp/manifest.webapp, а не /manifest.webapp.
  • Внутренние пути также должны обслуживаться из того же источника, что и приложение.
  • Внешние пути должны быть полностью квалифицированы. Например, если у вас есть упакованное приложение на Firefox Marketplace, но значок размещен на вашем собственном сервере, путь к значку будет http: //mywebapp/images/myicon.png.

Требования для публикации в Firefox Marketplace

Если вы захотите опубликовать свое приложение, то в вашем манифесте должно присутвовать:

  • name
  • description
  • launch_path
  • icons
  • developer
  • default_locale
  • type

Требования к общим открытым веб-приложениям

Если вы создаете общее размещенное приложение, которое не будет опубликовано в Firefox Marketplace, ваш манифест приложения должен содержать следующие поля:

  • name
  • description
  • icons (1 icon of 128×128 обязательно, 1 icon of 512×512 рекомендуется)

Примечание: Чтобы самостоятельно публиковать приложение со страницы, которой вы управляете, необходимо предоставить пользователям механизм запуска установки приложения. Обычно это делается путем вызова navigator.Apps.install () при нажатии кнопки в случае размещенного приложения или navigator.Apps.installPackage () в случае упакованного приложения.

Если вы отправляете в Firefox Marketplace, манифест вашего приложения должен пройти проверку Marketplace.

Попробуйте наш App Validator, который поможет вам выявить любые ошибки. Или вы можете использовать этот API для проверки манифеста вашего приложения.

Пример манифеста

Ниже приведен минимальный манифест. Вы можете скопировать его в текстовый файл и заменить значения своей собственной информацией.

{
  "name": "My App",
  "description": "My elevator pitch goes here",
  "launch_path": "/index.html",
  "icons": {
    "512": "/img/icon-512.png",
    "128": "/img/icon-128.png"
  },
  "developer": {
    "name": "Your name or organization",
    "url": "http://your-homepage-here.org"
  },
  "default_locale": "en",
  "chrome": { "navigation": true }
}

Обязательные поля манифеста приложения

Поля в вашем манифесте могут быть в любом порядке. Поля в манифесте, кроме перечисленных ниже, будут игнорироваться.

name

Примечание: Обязательно

"name": "The Open Web!"

description

Примечание: Обязательно

"description": "Exciting Open Web App!"

launch_path

Примечание: Обязательно

"launch_path": "/index.html"

icons

"icons": {
  "128": "/img/icon-1.png",
  "512": "/img/icon-2.jpg"
}

developer

  • name
  • url
"developer": {
    "name": "The Open Web!",
    "url": "http://www.mywebapp.com"
}

default_locale

"default_locale": "en"

type

  • web
  • privileged
  • certified
"type": "certified"

chrome

Настройка панели навигации

chrome navigation

"chrome": { "navigation": true }

fullscreen

Показывать приложение в полный экран

"fullscreen": "true"

inputs

Обозначение языков ввода в приложении-клавиатуре

"inputs": {
   "en": {
     "launch_path": "/index.html#en",
     "name": "English",
     "description": "English layout",
     "types": ["url", "text"],
     "locales": {
       "en-US": {
         "name": "English",
         "description": "English layout"
       },
       "zh-TW": {
         "name": "英文",
         "description": "英文鍵盤"
       }
     }
   },
   "en-Dvorak": {
     "launch_path": "/index.html#en-Dvorak",
     "name": "English (Dvorak)",
     "description": "Dvorak layout",
     "types": ["url", "text"]
   },
   "es": {
     "launch_path": "/index.html#es",
     "name": "Spanish",
     "description": "Spanish layout",
     "types": ["url", "text"]
   },

  ...

}

orientation

value App will stay locked to
portrait-primary Phone upright in portrait orientation
portrait-secondary Phone upsidedown in portrait orientation
portrait
If you declare this, there's no need to write
-primary or -secondary
Phone upright in portrait orientationPhone upsidedown in portrait orientation
landscape-primary Phone lying on its left hand side in landscape orientation
landscape-secondary Phone lying on its right hand side in landscape orientation
landscape
If you declare this, there's no need to write
-primary or -secondary

Phone lying on its left hand side in landscape orientation

Phone lying on its right hand side in landscape orientation

"orientation": [ "landscape-primary" ]

origin

"origin": "app://mywebapp.com"