I’ve built a dapp for my on-chain game, it is based on ERC-721 tokens with embedded image and animation_url tags, both containing the actual image and animation data encoded as base64. Trivial on-chain tokens.
On the dapp, I use the token base64 data as
src of an
iframe. Also standard, everything works great! But the iOS MetaMask Browser (never tried Android) does not display anything on those iframes. Looking at OpenSea, which also uses iframes, my tokens are displayed ok and are interactable, but it seems they cache the html data into an html file, and use the url to that file on src, not the actual data as I’m using.
Is that a bug? Or it will not work by design? Caching the tokens to an html file breaks on-chain the decentralization concept. I should NOT be required to cache anything. Building an endpoint and passing the data in the url is something I do sometimes, but those tokens are longer than 2KB, breaking the url 2k limit.
Here made a test page embedding the iframes. Also trying with and tags, which work on Chrome desktop, Safari Mobile, but not on MetaMask. (the last iframe is just an url from artblocks to check iframes are enabled)
Test page is here: antechamber (dot) endlesscrawler (dot) io/iframe