| Offline: http://caniuse.com/#feat=offline-apps -- Kind of supported everywhere, but deprecated in the standards for Service Workers because it is hard to maintain these manifest files http://caniuse.com/#feat=serviceworkers -- Not supported hardly anywhere yet Windows offers the option of offline, server-backed web apps using (among other pieces) the working draft W3C App Manifest standard (proposed by Firefox OS, unrelated to the other HTML5 manifest standard). Caniuse doesn't even track the App Manifest standard yet. ManifoldJS (http://manifoldjs.com/) provides a means to support iOS/Android via that standard, and you know how it works on those platforms? It's a Cordova-based wrapper. Camera: http://caniuse.com/#feat=stream -- Not supported on iOS Safari, partially supported on Android You can cheat with an iOS specific trick and fallback to a classic file upload control on Android (which Android and just about only Android turns into a camera/photo picker) and use the standard getUserMedia on Windows 10 (but not 8.1), or you can use the Cordova plugin that provides the same API for all of the platforms. (Not without its own bugs/quirks, but better than implementing four different methods.) Geolocation: API is standard everywhere, yup, but in testing we've seen that Chrome and several flavors of Android like to use its network IP-based fallback provider when asked from a website even when the platform has location services on/available/permissions for the website; iOS sometimes returns strange or inaccurate results in the browser that you won't see in a native app. From Cordova we don't seem to have quite so many headaches getting seemingly accurate answers directly from platform location services. All of that is before you get into the fact that there's still a psychological benefit to some of our users that they are installing a "real" .ipa or .apk rather than a shortcut to a website in their browser. |