Skip to content

PWAs on Samsung Internet

Published Updated

In one line: per Samsung Internet’s own developer documentation, the browser supports installing a PWA through a manual “Add shortcut on Home screen” menu item, and separately shows a “+” ambient-badging icon in the URL bar when it detects an installable PWA whose manifest display is standalone or fullscreen.

Samsung Internet’s developer docs describe two related but distinct install signals rather than one:

  • Manual add. The user can open the menu and choose “Add shortcut on Home screen”; if the manifest declares icons, “the chosen icon will appear on the home screen along with the chosen short name.”
  • Ambient badging. Samsung’s docs state Samsung Internet “will dynamically display a plus icon in the URL bar” when it detects a PWA, and that this “+” icon “requires that the web app will be displayed as a standalone app, without the URL bar” — i.e. the manifest’s display member set to standalone or fullscreen. Web App Manifest support itself “arrived in Samsung Internet v4,” and ambient badging “was introduced in Samsung Internet 5.2.”
  • Samsung DeX. The docs also state that “in Samsung Internet running on Samsung DeX, web apps can be added to the desktop.”
{
"name": "My App",
"short_name": "App",
"display": "standalone",
"icons": [{ "src": "/icon-512.png", "sizes": "512x512", "type": "image/png" }]
}

Samsung’s documentation does not describe a JavaScript API, event, or property for querying whether the ambient-badging icon is currently shown, or for triggering the manual “Add shortcut” menu item programmatically. Separately, per MDN, the CSS display-mode media feature “can be used to test whether a web app is being displayed in a normal browser tab or in some alternative way, such as a standalone app or fullscreen mode.” MDN also notes that the fullscreen value matches when the page “has been put in fullscreen mode by the Fullscreen API or by using the fullscreen value of the display member of the Web App Manifest” — so an ordinary web page that calls the Fullscreen API on its own can match (display-mode: fullscreen) too, which makes that value unreliable as an install signal on its own. The check below only treats standalone as an install indicator for that reason:

function isRunningInstalled() {
if (!('matchMedia' in window)) {
// Fallback: no way to query display-mode here; assume not installed.
return false;
}
// Only `standalone` is used here: `fullscreen` also matches a plain web
// page that entered fullscreen through the Fullscreen API, so matching it
// would misreport an uninstalled page as installed.
return window.matchMedia('(display-mode: standalone)').matches;
}
if (!isRunningInstalled()) {
// Show in-page copy pointing at the browser's own menu, since there is no
// documented way to detect or trigger Samsung Internet's install UI directly.
document.getElementById('install-hint').hidden = false;
}
  • Set the manifest display to standalone or fullscreen — per Samsung’s docs, ambient badging’s plus icon depends on this value.
  • Provide manifest icons for the manual “Add shortcut on Home screen” path — per the docs, that icon (and the chosen short name) is what appears on the home screen.
  • A registered service worker does not by itself mean the page is cached for offline use. Samsung’s docs describe a service worker as “like a network proxy that runs in your browser” that “could return a response from a cache” — offline caching only happens if your fetch handler actually implements it.
  • Serve over HTTPS — per Samsung’s docs, “Service Workers are restricted to secure contexts.”
  • Don’t assume the ambient-badging icon and the manual home-screen menu item are the same signal — Samsung’s docs describe them as two separate paths to installation.