As Apple started supporting PWA from iOS 11.3, it’s the time to know how to test PWA on iOS devices and what all criteria Apple consider a website to be a Progressive Web Apps. Even though some of the main features of PWA like Add to HomeScreen prompt, Splash screen, Theme color are missing upon iOS, currently iOS supports Offline caching of pages and Offline Page that helps to navigate the website while Offline.
The criteria iOS uses to decide if the site is a Progressive Web App:
Website should served fully via HTTPS
Website has a Web App Manifest
Web App Manifest has name or short_name property
Service Worker registered with a fetch event handler
Display property should set to standalone, fullscreen and minimal-ui
Steps to Install and Test PWA on iOS Devices
Upon iOS devices, PWA currently works only upon Safari Browsers. And browsers like Chrome for iOS, Firefox Focus for iOS, Dolphin Ghostery, Opera Mini and Adblock Browser won’t support PWA at this moment.
Make sure that you have cleared the browsing data.
Visit the website that you have installed PWA Note:Currently like as on Chrome for Android and other browsers on Android there’s no inbuilt prompt to show Add to Homescreen for iOS devices. Due to that reason you need to manually add the PWA to your Homescreen.
Tap the Share button (at the browser options)
From the options tap the Add to Homescreen option, you can notice an icon of the website or screenshot of website added to your devices homescreen instantly.
Tap the icon from homescreen, then the Progressive Web App of your website will be loaded.
You cannot see the Splash Screen with icon and background color which you set upon Manifest right now, as both are not supported upon iOS.
Upon PWA navigate via some of the web pages you like, after that disconnect the internet on your iOS device and close the web app.
After that tap the web app icon again, you can notice that all the pages which you viewed earlier during online can be viewed and all the pages that you haven’t viewed will showed by an Offline page that you set upon the service worker.