Version: Smart Feature Phone 3.0

Manifest Change

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

Next (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
  • theme_color: string
  • background_color: string
  • orientation: string
  • start_url: string
  • icons: Array of Object
  • id: string

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 character.


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.


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",
    "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"
  }
}


Manifest Convert from KaiOS2.5 to KaiOS3.0

Upload your 2.5 version manifest and download 3.0 new manifest via Manifest Convertor

Note: "The origin path and id needs to be manually updated by developer. It won't be automatically migrated.

2.5.4 Manifest

Pretty
CONVERT
VALIDATE

3.0 Manifest