As we know that IOS doesn't have any support for service workers so working offline feature of PWA doesn't really work on IOS.
So my question can we implement the same functionality using Cache Manifest or Application Cache in IOS ?
PWA is a term that puts together several technologies like: offline support, add to homescreen, push notifications, background sync, etc.
The appcache supported by Safari will help a bit with the offline support, but unfortunately you won't have the same kind of features you have with service workers.
Some serviceworker tools allow you to fallback to appcache, but you will be missing the rest of the features that will your PWA rock.
Related
I have a finished web page/PWA, but I need to remove an option for mobile but leave it for web, is there a way to know when the application is opened from the PWA on any mobile device? And if yes, in what ways could it be done?
What are the differences between a PWA and a hybrid app? This question was asked before but I haven't found found a proper answer to my question.
I know a PWA runs in the browser and you get a hybrid app from an app store.
But both are using JavaScript with HTML and CSS and both enable offline support and I can access native features like camera and local storage.
Once I have added a PWA to my Homescreen, it uses a web view to render the app right? And a hybrid app uses a web view as well, so what exactly are the differences between PWA and a hybrid app?
With Ionic I can even use the exact same code for a pwa and a hybrid app...
Roughly it is like this below:
web app (PWA) is just a web-site that declares certain capabilities using manifest file etc which can get it some special treatments (like leverage service worker, sign up for web notifications, go full screen etc IF target browser supports it). As a web-app it is super limited in its "privileges" on a system level (like persistence quota etc)
hybrid app (like Cordova for example) is a binary code that is "wrapping" your web-code and exposes certain "native" SDK capabilities via plugins. You can potentially also write your own plugin and in theory access any native SDK API this way. But since your main app code is still a web-app that runs inside of a webview it still has a lot of penalties like performance etc. But at least you can get things like storage etc.
native app is a binary build using target platform's SDK. That in
theory gives you max access to capabilities and performance at
expense of having to write separate code for each platform.
Makes sense?
Progressive Apps
Today, these apps only work on Opera, Chrome, and the Samsung mobile browser. However, these browsers take up only less than half of the mobile browser market.
In some devices, some of the features will not work. For instance, notifications on iOS devices will not work.
In some apps, cameras, fingerprint scanner, and GPS may not work or work with glitches.
Cordova/ Ionic based hybrid apps
Making the hybrid apps run efficiently on multiple platforms is no easy task. In some instances, it could cost almost the same as running native apps. The cost will depend on how close you want to get to the native app experience.
Since these apps will launch using a browser-like component, they are only as good as the component on which they run. Earlier, Google and Apple did not agree on the WebView. While it has vastly been improved, it does not have the same efficiency as running a native app.
I need to develop a progressive web app with push notifications integrated. Searching on the web I have found diverse opinions about this subject.
If I have understood correctly, for now, we cannot have push notifications in safari for mobile (but only for Desktop). Is it right?
Do you have any suggestions to obtain the same result (I am not an iOS expert)? I was wondering that maybe developing a native app only for push notifications purposes could be a good choice until push notification will be ready also for safari mobile.
P.S. I am developing the PWA using Angular 2.
Thank you for the support.
Unfortunately, based this post and also this the latest iOS version(13.3) still doesn't support some features of progressive web app:
Web Push Notification
Background Sync
Page Lifecycle
Service Workers on WebViews
Universal Links / Link Capturing
Until now, no news that says will be implemented on the next version 14. As I said in the old post, I think iOS doesn't want to support these in PWA because these features have a bigger chance to be unnecessary exploited(spam, etc). And also maybe they want to force developers to create the native application rather than the progressive web application.
I just want to let you know: Apple will support push notifications for web apps! This news was published at the WWDC2022. Apple will release Web Push with Safari 16 on macOS (Ventura) in a few months (2022) and for iOS and iPadOS in 2023.
See: https://webkit.org/blog/12945/meet-web-push/
Until this is working, I will use this Flutter wrapper thats embeds the PWA in a Webview.
I've developed a web app that needs to work on mobile devices offline. I've looked into progressive web apps and I'm pretty excited by the trend. Sadly, Apple still doesn't have working support, but it looks like that's changing https://cloudfour.com/thinks/apple-starts-work-on-progressive-web-apps/
Even though Apple devices don't support PWAs as Android does, it seems like certain features are already supported such as offline storage via IndexedDB(?). Does anyone know if I can currently use IndexedDB via PouchDB (for instance) to save/retrieve data? A link to a web app with this capability would be very helpful.
All I need to do for my app to function is to be able to open pdf's located on the local file system and update/retrieve data from a browser based db. Hopefully this is possible.
I don't know what a progressive web app is, yet you can definitly use PouchDB on apple devices.
The pouch docs (dating back to 2015) still say that there's no support for IndexedDB on iOS Safari as the implementation is too buggy. Back then you could use PouchDB via WebSQL on iOS.
Recent versions of iOS and Safari do support IndexedDB, see the caniuse on IndexedDB. So you should also be able to use PouchDB via IndexedDB.
I'm trying to create a HTML5 app for mobiles and I need offline capabilities.
My idea was to use Firefox for it is available on lot of phones.
But, since Firefox for iOS is relatively recent, I wonder if it supports Service Workers.
I'm serving UpUp from a http://surge.sh subdomain and it's not working in Firefox iOS 2.1 (4).