A Django app to include a manifest.json and Service Worker instance to enable progressive web app behavior
Project description
django-progressive-web-app
This Django app turns your project into a progressive web app. Navigating to your site on an Android phone will prompt you to add the app to your home screen.
Launching the app from your home screen will display your app without browser chrome. As such, it’s critical that your application provides all navigation within the HTML (no reliance on the browser back or forward button).
Requirements
Progressive Web Apps require HTTPS unless being served from localhost. If you’re not already using HTTPS on your site, check out Let’s Encrypt and ZeroSSL.
Installation
Install from PyPI:
pip install django-progressive-web-app
Configuration
Add pwa to your list of INSTALLED_APPS in settings.py:
INSTALLED_APPS = [
...
'pwa',
...
]
Configure your app name, description, and icons in settings.py:
PWA_APP_NAME = 'My Kickass App'
PWA_APP_DESCRIPTION = "Do kickass things all day long without that pesky browser chrome"
PWA_APP_THEME_COLOR = '#0A0302'
PWA_APP_ICONS = [
{
'src': '/static/images/my_app_icon.png',
'sizes': '160x160'
}
]
Add the progressive web app URLs to urls.py:
from django.conf.urls import url, include
urlpatterns = [
...
url('', include('pwa.urls')), # You MUST use an empty string as the URL prefix
...
]
Inject the required meta tags in your base.html (or wherever your HTML <head> is defined):
{% load pwa %}
<head>
...
{% progressive_web_app_meta %}
...
</head>
Troubleshooting
While running the Django test server: 1. Verify that /manifest.json is being served 1. Verify that /serviceworker.js is being served 1. Use the Application tab in the Chrome Developer Tools to verify the progressive web app is configured correctly. 1. Use the “Add to homescreen” link on the Application Tab to verify you can add the app successfully.
Adding Your Own Service Worker
By default, the service worker implemented by this app is empty. To add service worker functionality, you’ll want to create a serviceworker.js or similarly named file, and then point at it using the PWA_SERVICE_WORKER_PATH variable.
PWA_SERVICE_WORKER_PATH = os.path.join(BASE_DIR, 'my_app', 'serviceworker.js')
Feedback
I welcome your feedback and pull requests. Enjoy!
License
All files in this repository are distributed under the MIT license.
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
File details
Details for the file django-progressive-web-app-0.1.tar.gz
.
File metadata
- Download URL: django-progressive-web-app-0.1.tar.gz
- Upload date:
- Size: 5.5 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | 859c4b4b7d573f2422cde49a271cc7dd0b06a88911780f8b2148ffd2b584e662 |
|
MD5 | 41557e6a41ada16b80d00b184ba7c347 |
|
BLAKE2b-256 | f4c0f21f5bb2d34a2857fff287aaaab5a99ed1b7ef823851216a2e89845b7a67 |