How many browsers support
-webkit-overflow-scrolling:touch
iOS5 does, what about the rest of them, and android etc..
As of this writing, -webkit-overflow-scrolling was exclusive to Mobile Safari on iOS 5 and later.
As of mid-2012, the latest Android version (4.1 Jelly Bean) does not support it, but it IS supported in Chrome for Android, which can be downloaded from Google Play (and only supports Android 4.0+). Android 3.0+ supports overflow: scroll, but it's not very snappy.
Just iOS5 right now. The only other major mobile browser that would use this would be Chrome as others have their own extensions.
Since this post is now 2 years old, just thought I'd share some helpful updates I dug up:
Chrome Browser for Android no longer supports -webkit-overflow-scrolling? Is there an alternative?
http://cantina.co/2012/03/06/ios-5-native-scrolling-grins-and-gothcas/
Please note that the Android 4.1.2 Stock Browser that comes with the Galaxy S2 official firmware reports that it supports webkit-overflow-scrolling, but when you poll the value, it's always an empty string.
Which can lead to nasty bugs like this one: https://github.com/lazd/iNoBounce/issues/8
Related
I can't seem to find anything definitive about whether WebRTC (or some subset of features) is supported in Oculus Browser 12.0, and I don't have access to one to test myself.
According to the Oculus Browser 12.0 release notes, it uses Chromium version 86. According to the WebRTC Wikipedia page, Chrome has supported WebRTC since 29. So that seems promising. But caniuse.com says that it's only supported in 87 (unless I'm reading that wrong...). It's unclear to me what the relationship is between Chrome, Chromium, and Chrome for Android. Just because it's "supported in Google Chrome", does that mean it's supported on all platforms? Are Chrome for Android and Oculus Browser basically same thing for the purpose of which APIs it supports?
Thanks in advance!
WebRTC does work in Oculus Browser.
I'm not sure why caniuse does not have data for Chrome for Android before 87. WebRTC was implemented in Chrome for Android in 2012 and shipped in 2013. Here's the old launch bug for WebRTC on Android in the Chromium bug tracker.
Google Chrome and Oculus Browser are different browsers, but they share a lot of code from Chromium. One browser supporting feature X does not guarantee that the other browser does, but it is usually the case.
If an API is not core to your experience, it is good to use feature detection and degrade gracefully if an API is not implemented on a browser you're on.
I have been trying to investigate during these days exactly which browser is the one that comes by default in the android devices, but I am still confused.
If I understood this correctly, there are two possibilities depending on the device and Android version:
"Android Browser" (its version depends only on the Android API? no updatable? based on WebKit?)
"Chrome for Android" based on WebKit
I have done some tests with all the devices that I have been able to obtain and I have seen that approximately from version 5.0 or 5.1 of Android the default browser begins to be Chrome for Android. I think that because on versions smaller than 5.0 I cannot debug the app-browser connecting it to my PC and from the chrome://inspect and on versions higher I can do it, but maybe I'm wrong. I would like to ask if anyone can verify or correct that?
I have also realized that in versions higher than 5.0 there is an application called "Android System WebView" also available in PlayStore, but I would also like to ask: Does this have any relation to the type of browser installed (Android Browser or Chrome For Android)?
Our Phonegap app using inappbrowser works really well on every device tested except one using Android version 4.3 where the CSS seems unresponsive and the onscreen keyboard doesn't pop up when you tap in text fields. I can't seem to find any documentation on minimum versions of Android for supporting the various Phonegap plugins.
From my experience, I've used phonegap a far as Android 2.1 . The problem you could have on such older versions is the phonegap version.
You should provide further information such as phonegap version.
But I can assure you that Android 4.3 has a very broad support for all Phonegap/Cordova 5+ plugins.
If I were you I wolud try updating phonegap version according to your desire of minimum Android version you want your app to be executed on.
For example, until Android 2.3 on inappbrowser apps it wasn't able to use overflow scroll, so you had to use an external plugin to get that effect, which was really annoying.
Hope this helps.
Without any code it's hard to diagnose, but it might be a browser issue: Android 4.3 does not necessarily ship with Chrome, so it might be still running the old "Android Browser", which does not support all (CSS-)features Chrome supports. Caniuse helps to find out if a browser supports a certain feature.
If it's indeed a browser issue and you have to support older browsers like the Android Browser, you might want to check out Crosswalk. It provides a recent version of Chrome as a WebView and as InAppBrowser with consistent behaviour on all Android 4.x devices. Downside: Your app's size will increase...
If it's not the browser you might need to show us some of your code.
We have an iOS html5-based app. One of the questions that's coming up a lot is if and when we are going to port to Android.
Because it's mostly html5, a port should be relatively easy. However, the HTML looks different on my Moto G than it does on iOS, even though Chrome on my mac does render it correctly. Now, I have some experience with cross-browser html development from back in the netscape/ie6 days, so I can probably figure out what's going on.
What worries me more though, is the fragmentation. If I get it to render correctly on my Android device, how do I know it works correctly devices with an older version of the OS too? On iOS, we simply require iOS6, as most iPhone users upgrade their OS. On Android, this is a lot more difficult, as users don't tend to update (or the manufacturers don't even provide updates).
Do I need to get my hands on a ton of different devices to test on? Any easier ways to test this? I'm new to Android development, so any advice would be greatly appreciated!
This is a common issue across Android Development. Device Fragmentation... our nemesis. What will make it even more difficult, as I have experienced, is that Android ditched the old WebView in favor of a Chromium based WebView in KitKat. So even the APIs are no longer the same from your Moto G to previous devices.
That said, there are a fair amount of resources available in helping assist with creating a Web App that will work with your site and the native device. Quite a few examples too.
I would begin here: https://developer.android.com/guide/webapps/index.html which includes a subsection devoted entirely to the Chromium changes incorporated in KitKat (https://developer.android.com/guide/webapps/migrating.html)
Additionally, there is this Pixel Perfect information site as well: https://developer.chrome.com/multidevice/webview/pixelperfect
Now you can set your minimum accepted and targeted API levels on Android, just as you would on iOS. For instance, if the minimum is 15 and it is targeted for 19, then you are specifying that your app will work for KitKat (4.4) devices, but support as old as Ice Cream Sandwich (4.0.3). There's really no reason to target an API lower than 15 anymore, unless something is very specific business reason to target a device that low. By specific, I mean more distinct than "we want to reach as many as possible."
Finally, there are emulators that you can create through the AVD (Android Virtual Device) manager that can replicate various OS levels and hardware configurations. A very popular emulator company called Genymotion (http://www.genymotion.com/) is also frequently used, however it is not free for commercial use.
If so, does anybody know which version it's scheduled to be supported in (in built-in Chrome Lite browser)? Also, is it currently supported on any of the alternative browsers for Android like FireFox or Opera Mini?
Will Android support WebSockets in an upcoming version?
Probably, given Google's HTML5 emphasis.
If so, does anybody know which version it's scheduled to be supported in (in built-in Chrome Lite browser)?
Google does not publish that sort of detail in advance of releases. Hence, you'll know about it when it ships, not sooner.
Also, is it currently supported on any of the alternative browsers for Android like FireFox or Opera Mini?
Firefox Mobile's FAQ does not list it among the HTML5 features it presently supports. I have no idea about other browsers.
The iOS 4.2 beta currently has WebSockets support: http://twitpic.com/2yiygv
Come November when iOS 4.2 actually ships, if it still has WebSockets turned on (it has been in a previous beta and been turned off before shipping), then you can be sure that google won't be far behind.
Regardless, I predict that it will arrive with Gingerbread (the next one) since they are making such as big for other HTML5 features in that version: http://www.shoutpedia.com/what-is-next-to-froyo-android-2-3-might-be-released-by-fall-of-2010-3457/
Opera Mobile, Opera Mini and Firefox Mobile do not currently (Feb 2010) support WebSockets and won't do so until a change to the specification has been made. This is because a security issue was found in November 2010 in the underlying protocol: http://www.ietf.org/mail-archive/web/hybi/current/msg04744.html
I imagine WebKit support is also on hold until it's safe again, but it's not clear when that will be.
It's 2012, and the Android Browser still doesn't support Websockets (at Android v4.0). Also, there does not seem to be any indication into have websocket in the Android Browser. some speculation seems to revolve around Google switching the Android Browser with Chrome for Android (why they didn't do this before, is beyond me).
iOS (safari, chrome and opera*) has been supporting Websockets for some time now, however, you loose iPhone 3 (and below) clients. Not that they're much nowadays (from statistics).
Flash....well, flash isn't a browser platform, but it's a good fallback. Thanks to Flash, you can get websocket goodness on older browsers like IE, even on Windows Mobile.
Still, it doesn't fix the issue on Android (the default flash player is a slim vendor-specific mutilation) nor does it work for older iPhone/iPad versions (they tend to get sick whenever they hear anything about flash).
*Opera Mini DOES NOT support websockets, as opposed to Opera Mobile.
Even BlackBerry 6.1+ supports Websockets, but not Android. Google was first in HTML5 among desktop browsers and seemingly last one among mobile platforms.
The iOS WebKit does only support old, outdated WS spec. Not RFC6455.
On Android: built-in browser up to and incl. Android 4: no WS support whatsoever.
Firefox Mobile .. current WS spec support. Same with Chrome for Android (only avail. for Ice Cream).
===
Btw: For Android native apps, there is Autobahn WebSockets for Android
https://github.com/oberstet/AutobahnAndroid
It supports the final RFC6455, integrates well with UI and service apps, provides RPC and PubSub over WebSockets, and more. Check out the project README on GitHub.
Disclaimer: I am the author of Autobahn.
Firefox Mobile 7(Aurora) support WebSocket(renamed to MozWebSocket):
console.log(window.MozWebSocket.prototype)