Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

Chrome for iOS user agent on iPad

I have a web page that when viewed from an iOS device displays slightly different content. To detect the device in question the site looks for iPad;, iPod;, or iPhone; in the user agent string.

This works perfectly on Safari on all iOS devices. Testing with Chrome for iOS it works on iPhone and iPad 1, but not iPad 3. The web site is getting the following (unexpected) user-agent string:

Mozilla/5.0 (Macintosh; Intel Mac OS X 10_7_3) AppleWebKit/534.53.11 (KHTML, like Gecko) Version/5.1.3 Safari/534.53.10

This seems to be related to the "request desktop site" option in the chrome menu (what would be the wrench icon in desktop chrome). For my site it's disabled and seems to be locked to the desktop rather than mobile site. For other sites, it's enabled and results in a different user-agent string being sent when selected. eg: try http://ifconfig.me/all

So my questions are:

  • what criteria does Chrome use to decide whether to enable this option
  • given that Chrome has forced this site to the desktop site, how do I render iOS specific content (in my case a link using a protocol that is handled by my app)

If you'd like to test this yourself, there's a page here that simply reflects the user-agent string.

  • http://minicompapp.com/Home/UserAgent
like image 375
Brad Robinson Avatar asked Jul 02 '12 13:07

Brad Robinson


1 Answers

The browser will switch between using the two User Agent strings based on whether you are acting as a mobile browser of masquerading as the desktop browser.

User Agent:

Mozilla/5.0 (iPhone; U; CPU iPhone OS 5_1_1 like Mac OS X; en-gb)
AppleWebKit/534.46.0 (KHTML, like Gecko)
CriOS/19.0.1084.60 Mobile/9B206 Safari/7534.48.3

User Agent after "Request desktop version":

Mozilla/5.0 (Macintosh; Intel Mac OS X 10_7_3)
AppleWebKit/534.53.11 (KHTML, like Gecko)
Version/5.1.3 Safari/534.53.10

This is only a hint to the web server about who the client is. The browser should render the received web content independently of the User Agent.

like image 104
don Avatar answered Oct 12 '22 01:10

don