Indie game storeFree gamesFun gamesHorror games
Game developmentAssetsComics
SalesBundles
Jobs
Tags

For anyone who's curious, I attempted the following work-around:

  1. Detect if the game is running on iPad
  2. If so, prompt the user to click a link to load the frame's URL in a new tab (ensuring localStorage writes are no longer cross-domain)

#2 works, but, to my surprise, I couldn't find a reliable way to determine if the user is on an iPad. Recent Safari updates make iPads (and iPhones) claim to be desktop Macs, so you have to resort to fragile fingerprinting techniques. (Unsurprisingly, there also is no way to detect if "Prevent Cross-Site Tracking" is enabled.)

If anyone has other ideas, let me know!

Admin (1 edit)

I couldn’t find a reliable way to determine if the user is on an iPad

Instead of detecting the device you should do feature detection. In this case you would try to access the localStorage object within a try catch statement. If that fails then you instruct them with alternative solution or a message about how their saves will not persist.

(3 edits) (+1)

Unfortunately that doesn't work (that was actually the first approach I tried). The localStorage calls all succeed on iPad--they just don't persist across page reloads :(

On a previous version of Safari, they would all fail and you could detect it, but that's not the case anymore...