-
Notifications
You must be signed in to change notification settings - Fork 9
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
iPhone version #8
Comments
There's also only one version of iPad and iPod in latest data-source file. |
Subscribed to this issue, especially a better support for crawlers. |
Improving the detection of the latest stuff is really necessary guys, iPhone yes, crawlers yes. Thanks. |
The problem with all the i-Devices from our friends in Cupertino is that as far as they are concerned there is only one version of iPad, iPod, iPhone. This means that they made it so that it is impossible to tell from a User-Agent string which version of which device you are dealing with. For example it is impossible to tell from a User-Agent string whether you're dealing with an iPad or an iPad Mini. Welcome to the 'closed garden'. From a 'front' point of view, i.e. identify incoming request's device and route/format content accordingly, this is not much of an issue, except in case of the iPad Mini, but from a 'back-end' point of view, i.e. for traffic-analysis, this is indeed an issue. The only possible angle here is to use the OS and Browser parsers to increase the granularity for analysis with the additional info on the OS version, browser type and version. |
In regards to crawlers and bots, this is important not only from a traffic point of view. E.g. Google has two bot versions: one for desktop and one for mobile. It would be useful to respond with the appropriate content to each of them. |
From what I know and have seen Google's 'mobile' bots' User-Agent strings are actually the User-Agent string of the mobile device they 'emulate' followed by the Googlebot-Mobile version and the Google bot URL. As a result when such a User-Agent string is parsed using OpenDdr, it is identified as the device the bot is emulating, so that should not be a problem. SAMSUNG-SGH-E250/1.0 Profile/MIDP-2.0 Configuration/CLDC-1.1 UP.Browser/6.2.3.3.c.1.101 (GUI) MMP/2.0 (compatible; Googlebot-Mobile/2.1; +http://www.google.com/bot.html) will be identified as device Samsung SGH-E250 You can test that here http://www.ducis.net/Miri/UserAgent If you have examples where that is not the case I would very much like to know so as to see if the issue can be addressed. Feel free to contact me : seshat at ducis dot net. |
Regarding iDevices, there's a clear difference from iPhone 4 vs 5 when it comes to the user agent string, e.g. |
Separating iDevices is really important. Maybe this list can help: http://www.enterpriseios.com/wiki/UserAgent |
@beradrian : these numbers are the version numbers of the iOS of the device. If an iPhone 4 user upgrades to iOS 5 the User-Agent string will say : OS 5_0 However, if you want to use the OS version you can use the OSBuilder to get the device's OS. If the OS Version is 4 you can be pretty certain it's an iPhone 4, otherwise if for example the OS version is 5, it may be an iPhone 4 upgraded to iOS 5 or an iPhone 5. @aitudor : Interesting list, I will certainly have a good look at it. However, again I must wonder how these version and build numbers change when the OS of the device is upgraded. I understand the importance of correctly identifying iDevices and I wish I could offer a simple/quick fix solution but for the moment I see none. Maybe I will after digesting that UA fragment list. It would help if you could send me (seshat at ducis dot net) a list of all the iDevice User-Agent strings you have collected in 'the wild' for testing. If I come nearer a solution you'll be the fist to know. If only the lads and lasses at Apple would play nice with the whole of the www instead of their own proprietary eco-system we wouldn't be in this pickle... |
I did some tests and here's a good example using an iPhone 3 GS, upgraded to iOS 6.0.1 : Mozilla/5.0 (iPhone; CPU iPhone OS 6_0_1 like Mac OS X; el-gr) AppleWebKit/536.26 (KHTML, like Gecko) CriOS/23.0.1271.100 Mobile/10A523 Safari/8536.25 There is nothing in this UA-string that tells me it is an iPhone 3 GS. Now the question is : what are the relevant differences between for example these 4 iPhones or 7 iPads. For that an UAProf would be nice...but then they don't do UAProf's in Cupertino either... Depending on what you are trying to achieve or what the application is, one possible work-around would be to get the relevant properties from client-side 'probes' using javascript. To get some idea of the issues, have a look at this : http://stackoverflow.com/questions/13248493/detect-ipad-mini-in-html5 |
Let's suppose that you have an iPhone 3GS upgraded to iOS 6.0.1. Now the question is: would you prefer to be detected as iPhone version 1 or iPhone version 6? |
@beradrian : "iPhone version 1 or iPhone version 6" conflates device and OS version. |
How can I identify the OS version using an OSBuilder? Do you have a code sample? |
@beradrian : if you are referring to the Mobile build version (see above), the OpenDDR OsBuilder does not identify it, something like this would : public static string IosVersion(string userAgent) { string mobileVersion = string.Empty; Regex mobileRegex = new Regex("\\b Mobile/\\w*\\b", RegexOptions.Compiled); if (mobileRegex.IsMatch(userAgent)) { Match mobileMatcher = mobileRegex.Match(userAgent); GroupCollection mgroups = mobileMatcher.Groups; string mVersion = mgroups(0).Value; if (!string.IsNullOrEmpty(mVersion)) { string[] splitVersion = mVersion.Split(Convert.ToChar("/")); if (splitVersion.Length == 2) { mobileVersion = splitVersion[1]; } } } return mobileVersion; } |
Unfortunately this does not have anything to do with OpenDDR. Moreover this will not work for other OSes. |
IOSMozillaSubBuilder...have a look. And if you're waiting for OpenDDR's response : don't hold your breath. Having said that, we're all looking forward to your constructive contribution ;-) |
For all iPhone there is only one version detected. Usually it is important to also know the version too, especially when talking about a widely spread device, but with a fragmented market.
The text was updated successfully, but these errors were encountered: