Version: Smart Feature Phone 3.0

Manifest

With KaiOS Next. We use PWA standard for the App's manifest. W3C webappmanifest.

KaiOS 3.0 (PWA standard)

If fields don't map in PWA standard, They will be put in b2g_feature.

Common Fields We Used:

Requires:

  • name or short_name: string
  • description: string
  • lang: string
  • id: string
  • theme_color: string
  • background_color: string
  • orientation: string
  • start_url: string
  • icons: Array of Object

Optional:

  • dir: string
  • scope: string
  • display: string
  • background_color: string
  • related_applications: Array of Object
  • prefer_related_applications: Boolean
  • categories: Array of Strings
  • screenshots: Array of Strings
  • shortcuts: Array of Objects

name / short_name

You must provide at least name or short_name. If both are provided:

  • name is used when the app is installed.
  • short_name is used on the user's home screen, or other places where space may be limited.

short_name should not be longer than 12 characters.


icons

Every object have 3 fields:

  • src image path
  • type image type. ex: image/png
  • sizes image size. ex: 192x192
// MOZ:
"icons": {​​
  "512": "/img/icon-512.png",
  "128": "/img/icon-128.png"
}
// PWA:
"icons": [
  {
    "src": "/images/icons-192.png",
    "type": "image/png",
    "sizes": "192x192"
  }
]

start_url

  • is equal to MOZ field: launch_path

background_color

the same as MOZ

This property is used on the splash screen when the application is first launch on mobile.


display

is equal to MOZ field: fullscreen You can customize what browser UI is shown when your app is launched. For example, you can hide the address bar and browser chrome. Game can even be made to launch full screen.

value:

  • fullscreen
  • standalone
  • minimal-ui
  • browser (default)

theme_color

the same as MOZ


orientation

the same as MOZ, but the value is a little bit different.

  • any
  • natural
  • landscape
  • landscape-primary
  • landscape-secondary
  • portrait
  • portrait-primary
  • portrait-secondary

lang

is equal to MOZ field default_locale

A default lang manifest file e.g.manifest.en-US with the required fields is required.

A language tag RFC 4646 that defines the language you used in the field values of your app manifest.

Please refer to the list below of language identification codes used in the KaiOS system. We strongly suggest to use the same language identification codes throughout to avoid misalignment issues or incorrect results when users change language settings in the system:

af-ZAAfrikaans
ar-SAعربي
az-Latn-AZAzərbaycan
be-BYБеларуская
bg-BGБългарски
bn-INবাংলা (IN)
bn-BDবাংলা-BD
bs-BABosanski
cs-CZČesky
da-DKDansk
de-DEDeutsch
el-GRΕλληνικά
en-GBEnglish (GB)
en-USEnglish (US)
es-USEspañol (US)
et-EEEesti
es-ESEspañol (ES)
fa-IRفارسی (IR)
fi-FISuomi
fil-PHTagalog
fr-CAFrench (CA)
fr-FRFrançais (FR)
he-ILעברית
hi-HIहिन्दी
hr-HRHrvatski
hu-HUMagyar
hy-AMՀայերեն
id-IDBahasa Indonesia
is-ISÍslenska
it-ITItaliano
It-LTLietuvių
ka-GEქართული
kk-KZҚазақша
km-KHភាសាខ្មែរ
lo-LAລາວ
lv-LVLatviešu
mk-MKМакедонски
mo-ROМолдовеняскэ
ms-MYMelayu
nb-NONorsk (bokmål)
ne-INनेपाली
nl-NLNederlands
pl-PLPolski
ps-AFپښتو
pt-BRPortuguês (do Brasil)
pt-PTPortuguês (Europeu)
ro-RORomână
ru-RUРусский
si-LKසිංහල
sk-SKSlovenčina
sl-SISlovenščina
sq-ALShqip
sr-Latn-CSСрпски/Srpski
sv-SESvenska
sw-ZAKiswahili
ta-INதமிழ்
th-THไทย
tr-TRTürkçe
uk-UAУкраїнська
ur-PKاردو
uz-Cyrl-UZO'zbek
vi-VNTiếng Việt
xh-ZAisiXhosa
zh-CN中文 (简体)
zh-HK中文-HK
zh-TW中文-TW
zu-ZAisiZulu
as-INঅসমীয়া
und-bodबोड़ो
doi-INडोगरी
gu-INગુજરાતી
kn-INಕನ್ನಡ
ks-INکأشُر
kok-INकोंकणी
mai-INमैथिली
ml-INമലയാളം
mni-INমণিপুরী
mr-INमराठी
or-INଓଡ଼ିଆ
pa-INਪੰਜਾਬੀ
sa-INसंस्कृत
sat-INᱥᱟᱱᱛᱟᱞᱤ
sd-INसिन्धी
te-INతెలుగు
ko-KR한국어"

id

The id uniquely identifies the app's update url. If dev wants to use same url as 2.5 app, please clone same value from 2.5 manifest name field.

For 2.5 family, KaiOS store uses manifest url to install/update app, and the manifest url is generated by 2.5 manifest name field.

For 3.0 family, KaiOS store uses update url instead of manifest url, and the update url is generated by 3.0 webmanifest.manifest id field.

2.5 manifest.webapp

{
  "name": "KaiWeather",
  "categories": ["utilities"],
  "version": "1.4.8",
  "description":
    "Stay up-to-date with reliable weather forecasts and conditions wherever you are, at any time, with alerts and reports from the most trusted source in weather.",
  "subtitle": "Get the latest weather updates",
  "launch_path": "/index.html",
  "type": "web",
  "origin": "app://kaios.kaiweather.net",
  "permissions": {
    "geolocation": {},
    "mobiledata": {},
    "wifidata": {}
  },
  "theme_color": "#6054EF",
  "default_locale": "en-US",
  "locales": {
    "en-US": {
      "name": "KaiWeather",
      "description":
        "Stay up-to-date with reliable weather forecasts and conditions wherever you are, at any time, with alerts and reports from the most trusted source in weather.",
      "subtitle": "Get the latest weather updates"
    }
  },
  "fullscreen": false,
  "developer": {
    "name": "KaiOS",
    "url": "http://kaiostech.com"
  },
  "icons": {
    "56": "/resources/icons/weather_56.png",
    "112": "/resources/icons/weather_112.png"
  },
  "orientation": "default",
  "chrome": {
    "statusbar": "overlap"
  }
}

3.0 manifest.webmanifest

{
  "lang": "en-US",
  "name": "KaiWeather",
  "id": "KaiWeather",
  "short_name": "KaiWeather",
  "categories": ["utilities"],
  "description":
    "Stay up-to-date with reliable weather forecasts and conditions wherever you are, at any time, with alerts and reports from the most trusted source in weather.",
  "icons": [
    {
      "src": "/resources/icons/weather_56.png",
      "type": "image/png",
      "sizes": "56x56"
    },
    {
      "src": "/resources/icons/weather_112.png",
      "type": "image/png",
      "sizes": "112x112"
    }
  ],
  "start_url": "/index.html",
  "theme_color": "#ffffff",
  "orientation": "natural",
  "b2g_features": {
    "version": "1.0",
    "core": true,
    "subtitle": "Get the latest weather updates",
    "permissions": {
      "geolocation": {}
    },
    "origin": "kaios-weather",
    "developer": {
      "name": "KaiOS",
      "url": "http://kaiostech.com"
    },
    "chrome": {
      "statusbar": "overlap"
    },
    "focus_color": "#6054EF"
  }
}

3.0 manifest.en-US.webmanifest

{
  "lang": "en-US",
  "name": "KaiWeather",
  "id": "KaiWeather",
  "short_name": "KaiWeather",
  "categories": ["utilities"],
  "description":
    "Stay up-to-date with reliable weather forecasts and conditions wherever you are, at any time, with alerts and reports from the most trusted source in weather.",
  "icons": [
    {
      "src": "/resources/icons/weather_56.png",
      "type": "image/png",
      "sizes": "56x56"
    },
    {
      "src": "/resources/icons/weather_112.png",
      "type": "image/png",
      "sizes": "112x112"
    }
  ],
  "start_url": "/index.html",
  "theme_color": "#ffffff",
  "orientation": "natural",
  "b2g_features": {
    "version": "1.0",
    "core": true,
    "subtitle": "Get the latest weather updates",
    "permissions": {
      "geolocation": {}
    },
    "origin": "kaios-weather",
    "developer": {
      "name": "KaiOS",
      "url": "http://kaiostech.com"
    },
    "chrome": {
      "statusbar": "overlap"
    },
    "focus_color": "#6054EF"
  }
}


More Information

For more information. You can reference MDN Web app manifests,

web.dev Add a web manifest and Web App Manifest Specification.