PWA
This Library is no longer working in Yugal 8.9 and Above, developers will get a CLI alternative for it soon.
Developer can easily setup Progressive Web Apps in Yugal within few clicks.
Step 1 : Install PWA Library
yugal --install https://github.com/sinhapaurush/pwa.gitStep 2 : Setup PWA Variables
PWA Library needs some details about your App for building Manifest file for PWA.
// PWA CONFIGURATIONS
define("PWA_DESCRIPTION", "This is an app");
define("PWA_BG_COLOR", "#ffffff");
define("PWA_ICON", "./src/assets/yugal.png");IMPORTANT: Provide path to you site's Icon you want to use as PWA Icon. Add this ICON in assets directory in ./src directory. Provide the path to icon relative to index.php This library will resize the provided image to several sizes for PWA and save them in pwa-public-icons directory. It will create this directory if unexisted.
This library will build manifest.json and pwa-sw.js in project's root directory accordingly.
These are extra CONSTANTS needed for configuring PWA, this library also needs pre-defined constants which are DEV_MODE, SITE_TITLE, THEME_COLOR which are already in string.php file. Also, make DEV_MODE to true in order to build manifest and service worker file and re-writing chunk files for PWA
Step 3 : Connecting Library to Project
In index.php file, in head function add this library. Make sure head function is called just above end_doc function.
Example
head([
"library"=>[
"pwa"
]
]);
end_doc();Step 4 : Save and Test File
Customize project directory permission and allow Reading and Writing by Others so that this library can write required files. Then open/reload the project in browser. If you see no change, then try Ctrl+Shift+R for hard reloading. This will delete cache in browser. If you see any permission error, then provide Read and Write permission to Others on respective file and directory. Ofcourse you can make permission back to secure settings when DEV_MODE is false .
When you find no error, check Application tab in Inspect and check for Application details.
PWA IS ONLY VISIBLE IN PWA SUPPORTED BROWSERS: Chrome, Edge etc.
PWA JS Function
You can show native PWA installation prompt to users using pwa.install() function in JavaScript.
Example
yugal.$("#pwa-install-btn").addEventListener("click", ()=>{
pwa.install();
});Custom Service Worker
You can define additional Service Worker code to configure other features for PWA like push notifications by defining the code in a constant in string.php.
This constant should be called PWA_SW
Example
$additional_code = <<<JS
//SOME EXTRA SERVICE WORKER CODE
JS;
define("PWA_SW", $additional_code);Last updated