I was finally able to get my app to prompt add to screen. My app is hosted
on pythonanywhere.com & its all thanks to Giles Thomas overthere at
Pythonanywhere.com for assisting me with what I could do.
What I did was that I set up a static file mapping on my "Web" tab page.
I set "URL" to "/sw.js" and "Directory" to
"/home/myusername/web2py/applications/init/static/js/sw.js" In my
pythonanywhere.com dashboard.
>From there I changed the navigator.serviceWorker.register('/sw-location')
arguments of the /main.js script to point to my /sw.js script served now
from my root directory & no longer from sub-directories in my app as set up
above:
*Main.js Script*
window.onload = () =>
{
'use strict';
if ('serviceWorker' in navigator)
{
* navigator.serviceWorker.register('https://www.my-app.com/sw.js');*
}
}
Regards;
Mostwanted
On Wednesday, October 28, 2020 at 8:19:20 AM UTC+2 mostwanted wrote:
> Hey guys, I'm still here, struggling with the add to home PWA
> fucntionality. Has anyone found a solution? Please share or assist.
>
> Regards
>
> On Monday, August 24, 2020 at 10:42:57 AM UTC+2 mostwanted wrote:
>
>> Hey guys i'm still struggling with the *add to home screen* prompt,
>> please look at my code above & suggest something. Help me to get this to
>> work. I really need this functionality, please help me.
>>
>> Regards;
>>
>> Mostwanted
>> On Friday, May 29, 2020 at 12:46:38 AM UTC+2 mostwanted wrote:
>>
>>> Ok! So far I have been able to get some aspects of my PWA project
>>> working, The issue is that I have to install the app manually from the
>>> browser's menu but it installs with its icon & it can be launched from the
>>> icon with a splash screen, that's a minor success, it also opens fully like
>>> a standalone app, another achievement, it shows its respecting the manifest
>>> file rules, Now the major problems are that offline functionality & a
>>> prompt by the browser to install the app on home screen are not working and
>>> apparently this is caused by a service worker that can not be detected! The
>>> error says:
>>>
>>> *"No matching service worker detected. You may need to reload page or
>>> check that the scope of the service worker for the current page encloses
>>> the scope of the start URL from the manifest."*
>>>
>>> I do not understand this message at all, I went through the internet
>>> looking for possible answers but none of them are clear! Some are saying
>>> the solution is to place the service worker in the root directory! But guys
>>> please forgive my ignorance but where is the web2py root directory?! If
>>> anyone has been able to overcome this issue or understands the solution to
>>> it i'd greatly appreciate your assistance, my site is being hosted by
>>> pythonanywhere I dont know if this matters (Root Directories & all)!
>>> This is my code below:
>>>
>>> *LAYOUT CODE:*
>>>
>>> <!---------------------------------PWA---------------------------------------------->
>>> <link rel="manifest" href="/init/static/manifest/manifest.json">
>>> <link rel="icon" href="/pwa/static/favicon.ico" type="image/x-icon" />
>>> <link rel="apple-touch-icon"
>>> href="/init/static/images/icon_152x152.png">
>>> <!--meta name="theme-color" content="#DE3C4B" /-->
>>> <meta name="viewport" content="width=device-width, initial-scale=1.0">
>>> <meta name="theme-color" content="white"/>
>>> <meta name="apple-mobile-web-app-capable" content="yes">
>>> <meta name="apple-mobile-web-app-status-bar-style" content="black">
>>> <meta name="apple-mobile-web-app-title" content="Hello World">
>>> <meta name="msapplication-TileImage"
>>> content="/init/static/images/icon_144x144.png">
>>> <meta name="msapplication-TileColor" content="#FFFFFF">
>>>
>>>
>>> <script src="/init/static/js/main.js"></script>
>>>
>>>
>>> *MAIN.JS*
>>> window.onload = () =>
>>> {
>>> 'use strict';
>>>
>>> if ('serviceWorker' in navigator) {
>>> navigator.serviceWorker.register('/init/static/js/sw.js');
>>> }
>>> }
>>>
>>>
>>> *SW.JS*
>>> var cacheName = 'hello-pwa';
>>> var filesToCache = [
>>> '/',
>>> '/init/',
>>> ];
>>>
>>> /* Start the service worker and cache all of the app's content */
>>> self.addEventListener('install', function(e) {
>>> e.waitUntil(
>>> caches.open(cacheName).then(function(cache) {
>>> return cache.addAll(filesToCache);
>>> })
>>> );
>>> });
>>>
>>> /* Serve cached content when offline */
>>> self.addEventListener('fetch', function(e) {
>>> e.respondWith(
>>> caches.match(e.request).then(function(response) {
>>> return response || fetch(e.request);
>>> })
>>> );
>>> });
>>>
>>>
>>> *MANIFEST.JSON*
>>> {
>>> "name": "Hello World",
>>> "short_name": "Hello",
>>> "lang": "en-US",
>>> "background_color": "#DE3C4B",
>>> "theme_color": "#DE3C4B",
>>> "icons": [
>>> {
>>> "src": "/init/static/images/icon_72x72.png",
>>> "sizes": "72x72",
>>> "type": "image/png"
>>> },
>>> {
>>> "src": "/init/static/images/icon_96x96.png",
>>> "sizes": "96x96",
>>> "type": "image/png"
>>> },
>>> {
>>> "src": "/init/static/images/icon_128x128.png",
>>> "sizes": "128x128",
>>> "type": "image/png"
>>> },
>>> {
>>> "src": "/init/static/images/icon_144x144.png",
>>> "sizes": "144x144",
>>> "type": "image/png"
>>> },
>>> {
>>> "src": "/init/static/images/icon_152x152.png",
>>> "sizes": "152x152",
>>> "type": "image/png"
>>> },
>>> {
>>> "src": "/init/static/images/icon_192x192.png",
>>> "sizes": "192x192",
>>> "type": "image/png"
>>> },
>>> {
>>> "src": "/init/static/images/icon_384x384.png",
>>> "sizes": "384x384",
>>> "type": "image/png"
>>> },
>>> {
>>> "src": "/init/static/images/icon_512x512.png",
>>> "sizes": "512x512",
>>> "type": "image/png"
>>> }
>>> ],
>>> "start_url": "/init",
>>> "scope": "/init",
>>> "display": "standalone"
>>>
>>> }
>>>
>>>
>>> Regards;
>>>
>>> Mostwanted
>>>
>>>
>>> On Wednesday, May 27, 2020 at 12:08:15 PM UTC+2, mostwanted wrote:
>>>>
>>>> Whats the simplest way to get my web2py application to prompt users to
>>>> add to screen? I have tried alot of things but none are working, there are
>>>> no prompts happening! Some say its only achievable through a PWA design, i
>>>> tried this
>>>> https://groups.google.com/forum/#!searchin/web2py/pwa$20me%7Csort:date/web2py/rHBfs1zFG44/gKS6EOmlAgAJ
>>>>
>>>>
>>>> nothing is working, if anyone has a way to achieve this with web2py i'd
>>>> appreciate your assistance.
>>>>
>>>> Regards;
>>>>
>>>> Mostwanted
>>>>
>>>
--
Resources:
- http://web2py.com
- http://web2py.com/book (Documentation)
- http://github.com/web2py/web2py (Source code)
- https://code.google.com/p/web2py/issues/list (Report Issues)
---
You received this message because you are subscribed to the Google Groups
"web2py-users" group.
To unsubscribe from this group and stop receiving emails from it, send an email
to [email protected].
To view this discussion on the web visit
https://groups.google.com/d/msgid/web2py/5e63bd0a-a07a-4bf3-8b7f-4dc26dc7919an%40googlegroups.com.