11 Commits

Author SHA1 Message Date
Silvio Leite
0d4488a0c5 chore(setup): Update version 2020-05-30 18:15:07 -03:00
Silvio Leite
8e39aebe17 feat(status_bar): Make status bar style configurable 2020-05-30 18:00:17 -03:00
Silvio Leite
43a8131e8e chore(version): new version on setup 2020-02-03 14:20:55 -03:00
Silvio Luis
61cdbf6727 Merge pull request #35 from Natureshadow/patch-1
Fix URL inclusion
2020-02-03 14:12:03 -03:00
Dominik George
67cf917a08 Fix URL inclusion
Closes #34.
2020-01-26 20:49:26 +01:00
Silvio Leite
63139af3f3 feat(version): Update the version on setup 2020-01-23 07:38:48 -03:00
Silvio Luis
3c36673a21 Merge pull request #32 from Natureshadow/reverse-urls
Allow view names in settings and mounting at subdirectory
2020-01-23 07:36:01 -03:00
Silvio Luis
82f1abb342 Merge pull request #31 from hansegucker/master
Extend support for apple devices
2020-01-23 07:25:48 -03:00
Dominik George
83fa72fcac Update changelog 2020-01-19 10:06:26 +01:00
Dominik George
4f641bc79a Fix PWA if app is not mounted in root of webserver
Uses the same method as Django itself (e.g. in LOGIN_URL).
2020-01-19 10:01:08 +01:00
Jonathan Weth
447aa7c06d Extend support for apple devices
Add option to specify special icons for apple devices because icons on
apple devices are tailored to size differently
2020-01-04 12:47:28 +01:00
8 changed files with 46 additions and 15 deletions

View File

@@ -58,4 +58,10 @@
### Added
- Updated manifest.json by adding scope parameter.
- Updated serviceworker.js add scope dynamic parameter
## 1.0.7
### Fixed
- Fix PWA if app is not mounted in root of webserver
### Added
- Allow use of view names in PWA_APP_SCOPE, PWA_START_URL, PWA_APP_FETCH_URL and PWA_APP_ROOT

View File

@@ -54,12 +54,19 @@ PWA_APP_DISPLAY = 'standalone'
PWA_APP_SCOPE = '/'
PWA_APP_ORIENTATION = 'any'
PWA_APP_START_URL = '/'
PWA_APP_STATUS_BAR_COLOR = 'default'
PWA_APP_ICONS = [
{
'src': '/static/images/my_app_icon.png',
'sizes': '160x160'
}
]
PWA_APP_ICONS_APPLE = [
{
'src': '/static/images/my_apple_icon.png',
'sizes': '160x160'
}
]
PWA_APP_SPLASH_SCREEN = [
{
'src': '/static/images/icons/splash-640x1136.png',

View File

@@ -1,7 +1,16 @@
""" Settings required by django-app. """
from django.conf import settings
from django.shortcuts import resolve_url
from django.urls import get_script_prefix
from django.utils.functional import lazy
import os
# Lazy-evaluate URLs so including pwa.urls in root urlconf works
resolve_url = lazy(resolve_url, str)
# Get script prefix for apps not mounted under /
_PWA_SCRIPT_PREFIX = get_script_prefix()
# Path to the service worker implementation. Default implementation is empty.
PWA_SERVICE_WORKER_PATH = getattr(settings, 'PWA_SERVICE_WORKER_PATH',
os.path.join(os.path.abspath(os.path.dirname(__file__)), 'templates',
@@ -9,15 +18,16 @@ PWA_SERVICE_WORKER_PATH = getattr(settings, 'PWA_SERVICE_WORKER_PATH',
# App parameters to include in manifest.json and appropriate meta tags
PWA_APP_NAME = getattr(settings, 'PWA_APP_NAME', 'MyApp')
PWA_APP_DESCRIPTION = getattr(settings, 'PWA_APP_DESCRIPTION', 'My Progressive Web App')
PWA_APP_ROOT_URL = getattr(settings, 'PWA_APP_ROOT_URL', '/')
PWA_APP_ROOT_URL = resolve_url(getattr(settings, 'PWA_APP_ROOT_URL', _PWA_SCRIPT_PREFIX))
PWA_APP_THEME_COLOR = getattr(settings, 'PWA_APP_THEME_COLOR', '#000')
PWA_APP_BACKGROUND_COLOR = getattr(settings, 'PWA_APP_BACKGROUND_COLOR', '#fff')
PWA_APP_DISPLAY = getattr(settings, 'PWA_APP_DISPLAY', 'standalone')
PWA_APP_SCOPE = getattr(settings, 'PWA_APP_SCOPE', '/')
PWA_APP_SCOPE = resolve_url(getattr(settings, 'PWA_APP_SCOPE', _PWA_SCRIPT_PREFIX))
PWA_APP_DEBUG_MODE = getattr(settings, 'PWA_APP_DEBUG_MODE', True)
PWA_APP_ORIENTATION = getattr(settings, 'PWA_APP_ORIENTATION', 'any')
PWA_APP_START_URL = getattr(settings, 'PWA_APP_START_URL', '/')
PWA_APP_FETCH_URL = getattr(settings, 'PWA_APP_FETCH_URL', '/')
PWA_APP_START_URL = resolve_url(getattr(settings, 'PWA_APP_START_URL', _PWA_SCRIPT_PREFIX))
PWA_APP_FETCH_URL = resolve_url(getattr(settings, 'PWA_APP_FETCH_URL', _PWA_SCRIPT_PREFIX))
PWA_APP_STATUS_BAR_COLOR = getattr(settings, 'PWA_APP_STATUS_BAR_COLOR', 'default')
PWA_APP_ICONS = getattr(settings, 'PWA_APP_ICONS', [
{
'src': '/static/images/icons/icon-72x72.png',
@@ -97,5 +107,3 @@ PWA_APP_SPLASH_SCREEN = getattr(settings, 'PWA_APP_SPLASH_SCREEN', [
])
PWA_APP_DIR = getattr(settings, 'PWA_APP_DIR', 'auto')
PWA_APP_LANG = getattr(settings, 'PWA_APP_LANG', 'en-US')

View File

@@ -9,6 +9,7 @@
"orientation": {{ PWA_APP_ORIENTATION|js }},
"background_color": {{ PWA_APP_BACKGROUND_COLOR|js }},
"theme_color": {{ PWA_APP_THEME_COLOR|js }},
"status_bar": {{ PWA_APP_STATUS_BAR_COLOR|js }},
"icons": {{ PWA_APP_ICONS|js }},
"dir": {{ PWA_APP_DIR|js }},
"lang": {{ PWA_APP_LANG|js }}

View File

@@ -12,13 +12,20 @@
<!-- Add to homescreen for Safari on iOS -->
<meta name="apple-mobile-web-app-capable" content="yes">
<meta name="apple-mobile-web-app-title" content="{{ PWA_APP_NAME }}">
<meta name="apple-mobile-web-app-status-bar-style" content="default">
{% for icon in PWA_APP_ICONS %}
<link rel="apple-touch-icon" href="{{ icon.src }}" sizes="{{ icon.size }}">
{% endfor %}
<meta name="apple-mobile-web-app-status-bar-style" content="{{ PWA_APP_STATUS_BAR_COLOR }}">
{% if PWA_APP_ICONS_APPLE %}
{% for icon in PWA_APP_ICONS_APPLE %}
<link rel="apple-touch-icon" href="{{ icon.src }}" sizes="{{ icon.size }}">
{% endfor %}
{% else %}
{% for icon in PWA_APP_ICONS %}
<link rel="apple-touch-icon" href="{{ icon.src }}" sizes="{{ icon.size }}">
{% endfor %}
{% endif %}
{% for splash in PWA_APP_SPLASH_SCREEN%}
{% for splash in PWA_APP_SPLASH_SCREEN %}
<link href="{{ splash.src }}" media="{{ splash.media }}" rel="apple-touch-startup-image"/>
{% endfor %}

View File

@@ -22,7 +22,7 @@ install_requirements = [
setup(
name='django-pwa',
version='1.0.6',
version='1.0.9',
packages=find_packages(),
install_requires=install_requirements,
include_package_data=True,

View File

@@ -19,7 +19,8 @@ class AppSettingsTest(TestCase):
'PWA_APP_FETCH_URL',
'PWA_APP_ICONS',
'PWA_APP_DIR',
'PWA_APP_LANG'
'PWA_APP_LANG',
'PWA_APP_STATUS_BAR_COLOR'
]
for attr in attributes:
with self.subTest():

View File

@@ -37,7 +37,8 @@ class ManifestTest(TestCase):
'"orientation":',
'"icons":',
'"dir":',
'"lang":'
'"lang":',
'"status_bar":'
]
for expected in contents:
with self.subTest():