iOS 4 has an annoying bug for web app developers. If you use the apple-mobile-web-app-capable feature to indicate that your site should launch as it’s own app rather than open in Safari, the OS creates a low-resolution version of your apple-touch-icon on the home screen:
The app on the right uses apple-mobile-web-app-capable. The app on the left doesn’t. They were both generated from the same image.
Jailbreaked iOS 4 with pwnagetool and all my web apps with apple-mobile-web-app-capable crashes at start. Tried it with complete clean install (except the jailbreak) and it still crashes.
Posted by: Rasmusbe | June 24, 2010 at 03:22 PM
I submitted this bug to apple, but never thought to remove the 'apple-mobile-web-app-capable'
sadly, I'd much rather my app run full screen and have a ugly icon. Hopefully this will be fixed soon...
yeah right ;)
Posted by: Chris Drackett | June 24, 2010 at 03:43 PM
Rasmusbe: Ouch.
Chris: I’m hoping it gets fixed soon too. With any luck there’ll be a 4.0.1 before too long. And I agree, removing it isn’t really an option.
Posted by: Walt Dickinson | June 24, 2010 at 11:21 PM
Same here :(
I hope Apple will fix this soon...
Posted by: Franck | June 25, 2010 at 04:14 AM
Mine is fuzzy on the homescreen with
All of the images are now for my mobile site. I have tried exporting as 326dpi and they still are. Any ideas on how to clear up the images?
Posted by: Sean | June 25, 2010 at 06:11 AM
The problem for me append only after the jailbreak. Try. Restore to iOS 4 and before jailbreaking try some webapp with fullscreen support. It will works. After the jailbreak no way.
Posted by: Renato | June 28, 2010 at 03:36 AM
Does anyone know if this bug is just limited to jailbroken iPhones? Or all iOS 4 devices?
Posted by: Elias | August 03, 2010 at 10:48 PM
My phone's not jailbroken and the bug is there in 4.0 and 4.0.1.
Posted by: Walt Dickinson | August 03, 2010 at 11:16 PM
I started a discussion on Apple's support thread regarding this topic. Let's see if it gains any traction!
http://discussions.apple.com/thread.jspa?threadID=2555729&stqc=true
Posted by: Jonmilani | August 24, 2010 at 05:00 PM
Maybe you could try inspecting for device pixel ratio with JS?
var head = document.getElementsByTagName('head')[0]; var link = document.createElement('link'); link.rel = 'apple-touch-icon-precomposed'; if(window.devicePixelRatio < 2) { link.href='favicon.png'; } else { link.href='favicon@2x.png'; } head.appendChild(link);Haven’t tried it since I don’t have iPhone 4, but debugging in Chrome showed correct results while changing if/else statements.
Can someone try this with iPhone 4?
Posted by: Niksy | August 25, 2010 at 04:55 AM
Unfortunately, it doesn't have anything to do with the size of the image you provide. Even if the image is large, the iPhone 4 won't size it correctly. And it's still broken in iOS 4.0.2.
Posted by: Walt Dickinson | August 25, 2010 at 09:18 PM