PWA - Progressive Web App + Offline

Demo to preview the plugin:

Introduction

This plugin allows you to convert your Bubble app into a Progressive Webapp (PWA). This will allow your users to install your App to their homescreen.
A splash screen will also be shown to the sure while loading the PWA. The Plugin Automatically generates al meta tags and manifest json for you. It also allows you to Upload Splash Screens for different iOS Device Sizes, as Apple is very strict regarding this and only shows the splash screen if the correct file is used (according to the device orientation)
This Plugin also installs service workers and therefore offers offline functionality.
Image without caption

⚠️Installation warning⚠️

Each element has the Install action that is used to install the app on your device. But, based on official documentation the installation process may varies by the browser and by platform.

Desktop

Mobile

How to setup

  1. Add the Plugin Element to Your Page
      • Go to the Design tab in your Bubble editor.
      • Drag the PWA or PWA + Service Worker element onto your page.
      • Use PWA if you only want to support app installation without offline features.
      • Use PWA + Service Worker if you also want offline functionality and advanced caching.
        • Element → PWA.
          Element → PWA.
  1. Configure Element Properties
      • Click on the element you added.
      • Set any relevant properties. For PWA + Service Worker, you may need to define Service Worker file paths or other advanced options.
  1. Use Plugin Actions in Workflows
      • Go to the Workflow tab.
      • Create a new workflow triggered by any event you choose (e.g., a button click).
      • Add one of these actions:
        • Install A PWA → prompts the user to install your app.
          • Workflow → Install PWA.
            Workflow → Install PWA.
        • Install A PWA + Service Worker → installs the app and registers the Service Worker for offline usage.
          • Workflow → Install A PWA + Service Worker.
            Workflow → Install A PWA + Service Worker.
  1. Use Plugin Events
      • Listen for these events in your workflows:
        • A PWA + Service Worker Files Is Uploaded → triggered when the Service Worker files are successfully uploaded.
        • A PWA + Service Worker Saving Files Finished → triggered when saving the Service Worker files completes.
          • Image without caption
      • You can use these events to show notifications, trigger next steps in your app, or debug your Service Worker setup.

Service Workers + Offline Functionality (Requires Paid Bubble Plan)

The instructions are the same as for the other element, except for one Step.
  1. If you want to install Service Workers and enable Offline Functionality, drag the PWA + Service Worker Element onto your page.
    1. Image without caption
  1. Visit the URL https://s3.amazonaws.com/appforest_uf/f1618832588005x566671081254037200/sw.js and download the file hosted there "sw.js" to your device.
  1. Open the file using a text or code editor. At the top of the file, there is a line saying "var urlsToCache =" and then a list of two URLs.
  1. Please keep the /sw.js url! The other URL "/" can be replaced by you with the URL of your pwa.
  1. If your PWA should load the index page of your app, you can leave the URL as is. Save any changes to your file.
  1. Head over to Settings->SEO/Metatags of your bubble application and scroll to the bottom where it says "host files in the root directory."
  1. Upload the file you saved, and make sure it is named sw.js. Once the file is uploaded, hit save and deploy your application to live.

Video saved for offline view

⚠️
If you want to implement a feature that saves video on device, please use this file instead of above mentioned (after download, be sure to unzip it and indicate all URLs of the stored videos).
Image without caption

Saving images offline

If you want to upload images in your application offline and then download them when the network is available, follow these steps:
  1. Download the file "sw.js" to your device.
⚠️
This file does not complement the previous one, but completely replaces it with similar settings.
  1. Go to the Backend Workflow tab of your application and create a new event that will be triggered when images are uploaded from the temporary storage when the network appears.
    1. Image without caption
  1. Click Detect data and copy the endpoint
    1. Image without caption
  1. Open the code editor and paste the copied endpoint as shown in the screenshot
    1. Image without caption
  1. Save the sw.js file and put it in the section "SEO and metatags" -> "Hosting files in the root directory” and deploy the application
    1. Image without caption
  1. After successfully deploying the application, repeat step 3 in development mode and simultaneously launch the live version of the application.
  1. Switch your app to offline mode and upload an image (for example, via a file uploader). The image will be saved to a temporary storage IndexedDB.
    1. Image without caption
  1. After the network appears and the page is reloaded, the image will automatically be sent to the created endpoint Backend Workflow and initializes the event.
    1. Image without caption
  1. After successful initialization in the sw.js file should be removed from the endpoint 'version-test' and 'initialize' and repeat step 5.
    1. Image without caption
  1. Now you can save images to the Bubble database when the network appears.
    1. Image without caption

Plugin Element Properties

This plugin has 2 (two) visual elements which can be used on the page.

PWA

Element properties → PWA.
Element properties → PWA.
Fields:
Title
Description
Type
Name
The name of the Web App.
Text
Shortname
Shorter version of the name used when there is not sufficient space.
Text
Color
Theme color of PWA.
Color
Description
The description of the Web App.
Text
Background color
The background color of the Web App.
Color
PNG icon (512x512)
Upload app icon in the EXACT format: PNG icon with size 512x512px.
Image
PNG icon (192x192)
Upload app icon in the EXACT format: PNG icon with size 192x192px.
Image
PNG icon (128x128)
Upload you Icon in this EXACT Format: 512x512px and PNG
Image
Start URL
This URL will be loaded by PWA.
Text
Scope
The scope defines the navigation scope of this web application’s application context. It restricts what web pages can be viewed. If the user navigates outside the scope, it reverts to a normal web page inside a browser tab or window.
Text
Display
The type of PWA experience. NOTE: “standalone” is recommended! Available options: standalone, fullscreen, minimal-ui, browser
Dropdown
Launchscreen
A Launch/Splash Screen.
Image
———————– Apple Splash Screens ———————-
Splash screen (640x1136)
(optional) Upload a splash screen file in the format above: size 640x1136px.
Image (optional)
Splash screen (750x1334)
(optional) Upload a splash screen file in the format above: size 750x1334px.
Image (optional)
Splash screen (1242x2208)
(optional) Upload a splash screen file in the format above: size 1242x2208px.
Image (optional)
Splash screen (1125x2436)
(optional) Upload a splash screen file in the format above: size 1125x2436px.
Image (optional)
Splash screen (1242x2688)
(optional) Upload a splash screen file in the format above: size 1242x2688px.
Image (optional)
Splash screen (780x1768)
(optional) Upload a splash screen file in the format above: size 780x1768px.
Image (optional)
Splash screen (1284x2778)
(optional) Upload a splash screen file in the format above: size 1284x2778px.
Image (optional)
Splash screen (1536x2048)
(optional) Upload a splash screen file in the format above: size 1536x2048px.
Image (optional)
Splash screen (1686x2244)
(optional) Upload a splash screen file in the format above: size 1686x2244px.
Image (optional)
Splash screen (1668x2388)
(optional) Upload a splash screen file in the format above: size 1668x2388px.
Image (optional)
Splash screen (2048x2732)
(optional) Upload a splash screen file in the format above: size 2048x2732px.
Image (optional)
Splash screen (1668x2224)
(optional) Upload a splash screen file in the format above: size 1668x2224px.
Image (optional)
Splash screen (828x1792)
(optional) Upload a splash screen file in the format above: size 828x1792px.
Image (optional)
Prevent auto install
If “yes” this will prevent the plugin to auto prompt users to install the PWA, in this case you can use “Install” action to prompt user to install the PWA.
Checkbox (yes/no)
Prevent zooming
If “yes” the PWA’s content will not be zoomable.
Checkbox (yes/no)

Element Actions

☝️
Please read the Instalation warning section before using action!
  • Install - This action is used to install the PWA on the device.
    • Workflow action → Install PWA.
      Workflow action → Install PWA.

Exposed states

⚠️
Due to limited support of Progressive Web Apps (PWAs) on the Apple devices, the app is installed state is relevant to use on the Windows and Android devices!
For Apple devices, the app is installed state will return value "yes"!
Title
Description
Type
Available to install
Indicates that the app is ready to be installed on the device.
Checkbox (yes/no)
App is installed
Indicates that the app is already installed on the Windows or Android device.
Checkbox (yes/no)

PWA + Service Worker

Element properties → PWA + Service Worker.
Element properties → PWA + Service Worker.
Fields:
Title
Description
Type
Name
The name of the Web App.
Text
Shortname
Shorter version of the name used when there is not sufficient space.
Text
Color
Theme color of PWA.
Color
Description
The description of the Web App.
Text
Background color
The background color of the Web App.
Color
PNG icon (512x512)
Upload app icon in the EXACT format: PNG icon with size 512x512px.
Image
PNG icon (192x192)
Upload app icon in the EXACT format: PNG icon with size 192x192px.
Image
PNG icon (128x128)
Upload app icon in the EXACT format: PNG icon with size 128x128px.
Image
Start URL
This URL will be loaded by PWA.
Text
Scope
The scope defines the navigation scope of this web application’s application context. It restricts what web pages can be viewed. If the user navigates outside the scope, it reverts to a normal web page inside a browser tab or window.
Text
Display
The type of PWA experience. NOTE: “standalone” is recommended! Available options: standalone, fullscreen, minimal-ui, browser
Dropdown
Launchscreen
A Launch/Splash Screen.
Image
———————– Apple Splash Screens ———————-
Splash screen (640x1136)
Upload a splash screen file in the format above: size 640x1136px.
Image (optional)
Splash screen (750x1334)
Upload a splash screen file in the format above: size 750x1334px.
Image (optional)
Splash screen (1242x2208)
Upload a splash screen file in the format above: size 1242x2208px.
Image (optional)
Splash screen (1125x2436)
Upload a splash screen file in the format above: size 1125x2436px.
Image (optional)
Splash screen (1242x2688)
Upload a splash screen file in the format above: size 1242x2688px.
Image (optional)
Splash screen (780x1768)
Upload a splash screen file in the format above: size 780x1768px.
Image (optional)
Splash screen (1284x2778)
Upload a splash screen file in the format above: size 1284x2778px.
Image (optional)
Splash screen (1536x2048)
Upload a splash screen file in the format above: size 1536x2048px.
Image (optional)
Splash screen (1686x2244)
Upload a splash screen file in the format above: size 1686x2244px.
Image (optional)
Splash screen (1668x2388)
Upload a splash screen file in the format above: size 1668x2388px.
Image (optional)
Splash screen (2048x2732)
Upload a splash screen file in the format above: size 2048x2732px.
Image (optional)
Splash screen (1668x2224)
Upload a splash screen file in the format above: size 1668x2224px.
Image (optional)
Splash screen (828x1792)
Upload a splash screen file in the format above: size 828x1792px.
Image (optional)
Prevent zooming
If “yes” the PWA’s content will not be zoomable.
Checkbox (yes/no)

Element Actions

☝️
Please read the Instalation warning section before using action!
  1. Install - This action is used to install the PWA on the device.
    1. Workflow action → Install PWA + Service Worker.
      Workflow action → Install PWA + Service Worker.

Exposed states

⚠️
Due to limited support of Progressive Web Apps (PWAs) on the Apple devices, the app is installed state is relevant to use on the Windows and Android devices!
For Apple devices, the app is installed state will return value "yes"!
Title
Description
Type
Available to install
Indicates that the app is ready to be installed on the device.
Checkbox (yes/no)
App is installed
Indicates that the app is already installed on the Windows or Android device.
Checkbox (yes/no)
Image without caption

Changelogs