Platform Compatibility & Limitations

🧭 Platform Behavior Comparison

Certain platforms and environments β€” especially mobile WebViews and in-app browsers β€” impose limitations on how widgets can be opened, embedded, or interacted with. This affects popups, redirects, storage, iframe loading, and JavaScript behavior.

🧩 General Platform Characteristics

PlatformBehavior Summary
iOS (Safari / WebView)WebViews often block external links and popups; may force redirect to Safari
Android WebViewMore permissive: allows iframes, postMessage, JS
Desktop BrowsersFull feature support: tabs, popups, iframe, storage, SDK
ElectronBehaves like Chromium; allows full control via custom handlers

πŸ”¬ Widget Behavior by Integration Method

MethodWebiOS WebAndroid WebiOS WebViewAndroid WebViewElectron
Direct link / redirectβœ… Tab/new tabβœ… Safariβœ… Browser⚠️ Opens Safariβœ… In-WebViewβœ… Fully works
window.open / popupβœ… Popup⚠️ Maybeβœ… Works❌ Blocked⚠️ Unreliableβœ… Works
iframeβœ… Fullβœ… Safariβœ… Supported❌ Often blockedβœ… Mostly worksβœ… Full
iframe + postMessageβœ… Worksβœ… Worksβœ… Works⚠️ May need whitelistingβœ… Supportedβœ… Full
Web SDK (script injection)βœ… Supportedβœ… Worksβœ… Works⚠️ Depends on permissionsβœ… Mostly worksβœ… Full
WebView load (URL)❌ N/A❌ N/A❌ N/Aβœ… Needs gestureβœ… Direct loadβœ… Loads URL
Electron browser windowβœ… Browserβœ… Worksβœ… Works❌ N/A❌ N/Aβœ… Native
Deep link β†’ WebView❌ Desktop only⚠️ May fallbackβœ… In-appβœ… Needs whitelistβœ… Intent supportβœ… Emulated

πŸ›‘οΈ Security & UX Caveats

EnvironmentLimitation
iOS WebViewExternal links often open in Safari, not inside app
WebView (iOS & Android)May block popups, 3rd-party cookies, JS storage
iframeCSP + X-Frame-Options must be properly configured
ElectronCan disable popups, node integration, file access for security
Popup windowsMay be blocked unless triggered by user gesture (esp. on iOS)

πŸ“± In-App / Embedded Browser Notes

Apps like Telegram, Instagram, TikTok, Twitter/X, and email clients often open links in custom embedded WebViews (not Safari or Chrome). These may block standard browser features.

App / PlatformEngineBehavior Summary
Telegram (iOS)WKWebViewForces external links to Safari
Telegram (Android)Android WebViewMore flexible; stays in-app unless forced out
Instagram/FacebookCustom WebViewBlocks some JS, storage, cookies, intercepts navigation
TikTokRestricted WebViewMost popups/scripts blocked, may break postMessage
Twitter/XIn-app browserLimits popups and iframe behavior
Email ClientsVariesMay sandbox JS, break session persistence

⚠️ Known Behavioral Issues

  • ❌ window.open() blocked in some WebViews
  • ❌ Limited iframe or JS support in in-app browsers
  • πŸ” Redirects may be forced to open in Safari/Chrome
  • πŸͺ Third-party cookies often blocked
  • 🧭 Keyboard/focus bugs in mobile embeds
  • 🐒 Slow load or degraded UX in outdated WebViews

βœ… Recommendations

If the widget is opened in...We recommend...
Website (desktop/mobile)Use direct link, iframe, or Web SDK
Mobile App (Android)Load via WebView or iframe; allow JS + postMessage
Mobile App (iOS)Use WebView with a fallback to Safari if needed
Telegram / WhatsApp / iOS AppOpen in external Safari; don’t rely on embedding
Electron AppLoad in BrowserWindow, enable postMessage
Unknown WebViewDetect with navigator.userAgent and offer a fallback (e.g., open in browser)

🧠 Best Practices

  • Provide an "Open in browser" fallback button
  • Use a responsive layout β€” some in-app browsers mishandle the viewport
  • Avoid relying on window.open, popups, and non-persistent storage
  • Provide a direct-link fallback version of the widget