This library works well on the browsers that enjoy the vast majority of mobile market-share. That said, there are a number of web browsers available across the mobile and desktop device landscape.

Supported Browsers


  • Safari for iOS (version 11.3 and later)
  • Chrome for Android (versions from at least the last year)


  • Most Webkit/Blink-based web browsers for Android, including Brave (good)
  • iOS in-app web views implemented with SFSafariViewController (good)
  • Firefox for Android (good, however performance may be lower than other browsers)
  • Chrome for Mac/Windows (*)
  • Firefox for Mac/Windows (*)
  • Safari for Mac (*)


  • iOS in-app web views implemented with WKWebView or UIWebView - these iOS technologies do not support camera access at all and thus we're unable to support them. We hope that Apple will rectify this issue in a future iOS release.
  • Non-Safari web browsers on iOS, including Chrome, Firefox and Brave - these browsers use WKWebView due to App Store restrictions and thus do not support camera access.

Browsers without motion sensor access (e.g desktop browsers) don't support instant world tracking or attitude-based camera poses.

Detecting Browser Compatibility

To make it easy to detect if your page is running in a browser that's not supported, we've provided the BrowserCompatibility component.

   <BrowserCompatibility />
     {/* Content */}

The BrowserCompatibility default fallback shows a full-page dialog that informs the user they're using an unsupported browser, and provides a button to 'copy' the current page URL so they can 'paste' it into the address bar of a compatible alternative. You may also provide a custom fallback UI to be displayed.

<BrowserCompatibility fallback={<div>Sorry!</div>} />

For more custom implementations, consider usingbrowserIncompatible function.

const incompatible = browserIncompatible(); // true / false
zapcode branded_zapcode i