# Median Docs - [Welcome to Median](https://docs.median.co/docs/overview.md): Find your way around the Median docs, from building your first app in App Studio to publishing it on the App Store and Google Play. - [App architecture](https://docs.median.co/docs/architecture.md): Learn how Median turns your website into a native app: the web, native, and platform layers, the JavaScript Bridge, and native UI. - [Security & privacy](https://docs.median.co/docs/security.md): Learn how Median handles security and data privacy, where App Studio data is stored, and how to keep your app secure. - [Reporting app abuse and content violations](https://docs.median.co/docs/report.md): Report an app built with Median that contains abusive, harmful, or illegal content, and learn how our team reviews each report. - [App licenses](https://docs.median.co/docs/licenses.md): Learn how Median app licenses work, what happens to apps without an account, and how to apply and troubleshoot a license in App Studio. - [App updates and migration guide](https://docs.median.co/docs/app-updates.md): Publish updates to your Median app, fix website caching issues, and migrate a live app from another platform to Median. - [App Studio accounts](https://docs.median.co/docs/app-studio-accounts.md): Create your App Studio account, invite team members, set roles and access, secure your organization with SSO and 2FA, and organize apps. - [Support](https://docs.median.co/docs/support.md): Compare Median's support options and learn how to open a support ticket in App Studio and write a request the team can act on quickly. - [Median MCP server](https://docs.median.co/docs/mcp-server.md): Connect Claude, Cursor, VS Code, and other AI assistants to Median App Studio through the Model Context Protocol to manage and build your apps. - [Quickstart guide](https://docs.median.co/docs/quickstart.md): Create your first iOS and Android app from your website in App Studio, preview it in the simulator, add native touches, and build it. - [App Store publishing](https://docs.median.co/docs/app-publishing.md): Publish your app yourself or with Median's team. - [Branding overview](https://docs.median.co/docs/branding-overview.md): Brand your app with icons, splash screens, and colors. - [App icon](https://docs.median.co/docs/app-icon.md): Upload and configure your iOS and Android app icon. - [Splash screen](https://docs.median.co/docs/splash-screen.md): Configure a static or animated splash screen for your app, with separate settings for light mode and dark mode. - [Theme colors](https://docs.median.co/docs/theme-colors.md): Set the primary color for your app's native UI elements: the tint color on iOS and the accent color on Android. - [Status bar](https://docs.median.co/docs/status-bar.md): Control the color and style of the device status bar in your app, and change them at runtime with the JavaScript Bridge. - [System navigation bar (Android)](https://docs.median.co/docs/system-nav-bar.md): Set the color and icon style of the Android system navigation bar at runtime with the Median JavaScript Bridge. - [App interface overview](https://docs.median.co/docs/app-interface-overview.md): Configure how your app looks and behaves, from screen control, dark mode, and gestures to offline pages and accessibility. - [Device screen control](https://docs.median.co/docs/device-screen-control.md): Control screen brightness, screen timeout, full screen, and orientation in your Median app from App Studio or the JavaScript Bridge. - [Screen brightness](https://docs.median.co/docs/screen-brightness.md): Set the device screen brightness from your website with the JavaScript Bridge, restore it on navigation, or reset it to the system setting. - [Keep screen on](https://docs.median.co/docs/keep-screen-on.md): Keep the device screen from dimming or locking while your app is in the foreground, and restore normal behavior with the JavaScript Bridge. - [Full screen](https://docs.median.co/docs/full-screen.md): Hide the Android status and navigation bars, or the iOS landscape sidebars, so your content uses the full screen. - [Screen orientation](https://docs.median.co/docs/screen-orientation.md): Set your app to auto-rotate or stay fixed in portrait or landscape, separately for iOS and Android phones and tablets. - [Dark mode](https://docs.median.co/docs/dark-mode.md): Set dark mode for native UI elements. - [Native gestures and interactions](https://docs.median.co/docs/swipe-gestures.md): Enable swipe navigation, pinch-to-zoom, and pull-to-refresh in your app, and toggle swipe gestures at runtime with the JavaScript Bridge. - [Font scaling](https://docs.median.co/docs/font-scaling.md): Control how the Android device font size setting affects text in your app, or set a fixed font scale that ignores it. - [Webview zoom](https://docs.median.co/docs/webview-zoom.md): Set the initial webview zoom level in App Studio, and get or set the zoom level at runtime with the Median JavaScript Bridge. - [New windows](https://docs.median.co/docs/new-windows.md): Open and close pages in new webview windows. - [Maximum windows](https://docs.median.co/docs/maximum-windows.md): Limit the number of open WebView windows and auto-close windows to keep your app responsive on devices with limited memory. - [Offline page](https://docs.median.co/docs/offline-page.md): Show a default or custom offline page when your app loses its connection, and set how long the app waits before showing it. - [Service workers](https://docs.median.co/docs/service-workers.md): Use service workers for offline access in your Median app. They work out of the box on Android and need App-Bound Domains on iOS 14 and later. - [Native datastore offline](https://docs.median.co/docs/native-datastore-offline.md): Build a custom offline page that scans QR codes and stores the result on the device with the Native Datastore plugin until the app is back online. - [iOS Split View support](https://docs.median.co/docs/ios-split-view.md): Learn how your Median app supports Split View multitasking on iPad by default, with no extra configuration. - [Localization](https://docs.median.co/docs/localization.md): Learn how your app passes the device language to your website, and which native interface strings Median translates for the languages you enable. - [Liquid Glass (iOS)](https://docs.median.co/docs/ios-liquid-glass.md): Learn how Median apps support Apple's Liquid Glass design on iOS 26 and how to turn on Modern Liquid Design in App Studio. - [Link handling overview](https://docs.median.co/docs/link-handling-overview.md): Understand how your app handles links inside the WebView and links that open your app, and find the guides to configure each. - [Link behavior](https://docs.median.co/docs/internal-vs-external-links.md): Control whether links open inside your app, in an in-app browser, or externally, using App Studio rules or the JavaScript Bridge. - [Deep linking overview](https://docs.median.co/docs/deep-linking.md): Set up Universal Links and App Links. - [Deep Linking Validator](https://docs.median.co/docs/deep-linking-validator.md): Validate your deep linking association files. - [Custom URL schemes](https://docs.median.co/docs/url-scheme-protocol.md): Open pages in your app from links with a custom URL scheme, for example for authentication redirects or links from other apps and QR codes. - [Permissions overview](https://docs.median.co/docs/permissions-overview.md): Understand device permission prompts on iOS and Android, check permission status, and open app settings with the JavaScript Bridge. - [Permission prompt localization](https://docs.median.co/docs/permission-prompt-localization.md): Localize the text of iOS permission prompts in Xcode with InfoPlist.strings, and learn how Android handles permission prompt languages. - [Apple App Tracking Transparency](https://docs.median.co/docs/apple-att.md): Request App Tracking Transparency consent on iOS, automatically on launch or manually with the JavaScript Bridge, and check the user's choice. - [Camera and file uploads](https://docs.median.co/docs/camera-and-file-uploads.md): Enable camera access and file uploads in your app. - [Downloads directory](https://docs.median.co/docs/downloads-directory.md): Choose where your Android app saves downloaded files: the app's internal cache directory or the system downloads folder. - [Location services](https://docs.median.co/docs/location-services.md): Request location permissions on iOS and Android with the JavaScript Bridge without showing users duplicate permission prompts. - [WebRTC audio & video](https://docs.median.co/docs/web-rtc.md): Use WebRTC audio and video calls in your app. Median requests camera and microphone permissions automatically when your web app starts media capture. - [Website overrides overview](https://docs.median.co/docs/website-overrides-overview.md): Customize how your website looks and behaves in your app with a custom user agent, custom headers, custom CSS and JavaScript, and cookie persistence. - [Custom user agent](https://docs.median.co/docs/custom-user-agent.md): Customize the user agent to detect app traffic. - [Custom headers](https://docs.median.co/docs/custom-headers.md): Send custom HTTP headers to your web server. - [Custom CSS](https://docs.median.co/docs/custom-css.md): Change your website's styling inside the app. - [Custom JavaScript](https://docs.median.co/docs/custom-js.md): Inject custom JavaScript into your website in the app. - [Cookie persistence](https://docs.median.co/docs/cookie-persistence.md): Keep users signed in across app sessions. - [Native navigation overview](https://docs.median.co/docs/native-navigation-overview.md): Add native top navigation bars, sidebars, bottom tab bars, and iOS contextual toolbars that display instantly and persist across pages in your app. - [Native navigation instances](https://docs.median.co/docs/navigation-instances.md): Show different native navigation menus on different pages with instances, and match pages using wildcard URL patterns. - [What changed in native navigation](https://docs.median.co/docs/native-navigation-changes.md): Learn how navigation instances and URL patterns replaced per-component tabs and regular expressions, and how to check your converted app. - [Native page transitions](https://docs.median.co/docs/native-page-transitions.md): Fade between pages during full page loads, and troubleshoot slow transitions caused by blocking JavaScript on your website. - [Top navigation bar](https://docs.median.co/docs/top-navigation-bar.md): Show a native top navigation bar in your app for the sidebar menu, search, and other buttons, and set its title text from your website. - [Dynamic titles](https://docs.median.co/docs/dynamic-titles.md): Set the text or image in your app's top navigation bar per URL, at build time in App Studio or at runtime with the JavaScript Bridge. - [Auto new windows](https://docs.median.co/docs/auto-new-windows.md): Open pages in new windows with a Back button for multi-level navigation, configured in App Studio or at runtime with the JavaScript Bridge. - [Search form](https://docs.median.co/docs/search-bar-form.md): Add a native search button and search form to the top navigation bar that sends search terms to your website's search URL. - [Refresh button](https://docs.median.co/docs/refresh-button.md): Add a refresh button to the native top navigation bar so users can reload the current page, on all pages or only on specific URLs. - [Share button](https://docs.median.co/docs/share-button.md): Add a native Share button to the top navigation bar so users can share the current page with the iOS or Android share menu. - [Custom buttons](https://docs.median.co/docs/add-custom-buttons.md): Add custom icon buttons to your app's top native navigation. - [Top navigation bar demo app](https://docs.median.co/docs/top-nav-bar-demo-app.md): Try the native top navigation bar in live iOS and Android demo apps, with dynamic titles and custom icons, and see the code behind them. - [Sidebar navigation](https://docs.median.co/docs/sidebar-navigation-menu.md): Add a native slide-out sidebar menu to your app, and configure its items in App Studio or update them at runtime with the JavaScript Bridge. - [Sidebar Visual Editor](https://docs.median.co/docs/sidebar-configuration.md): Build your sidebar menu in the Visual Editor: add labels, URLs, icons, and menu groups, and trigger JavaScript from menu items. - [Dynamic menu items](https://docs.median.co/docs/dynamic-menu-items.md): Change your app's sidebar menu items from your website's JavaScript at runtime, without rebuilding your app. - [Sidebar demo app](https://docs.median.co/docs/sidebar-demo-app.md): Try the native sidebar menu in live iOS and Android demo apps, and see the configuration and JavaScript Bridge code behind them. - [Bottom tab bar](https://docs.median.co/docs/bottom-tab-bar.md): Add a native bottom tab bar to your app. - [Selecting tabs](https://docs.median.co/docs/selecting-tabs.md): Select or deselect bottom tab bar items from your website with the JavaScript Bridge, or automatically with URL rules. - [Bottom tab bar Visual Editor](https://docs.median.co/docs/tab-configuration.md): Build your bottom tab bar in the Visual Editor and trigger JavaScript commands from tab menu items. - [Dynamic tab menu](https://docs.median.co/docs/dynamic-tab-menu.md): Select, deselect, set, and hide bottom tab menu items at runtime from your website with the Median JavaScript Bridge. - [Localized tab menu](https://docs.median.co/docs/localized-tab-menu.md): Translate bottom tab bar labels based on the user's device language with a translation dictionary and the JavaScript Bridge. - [Bottom tab demo app](https://docs.median.co/docs/bottom-tab-demo-app.md): Try the bottom tab bar in live demo apps. - [Custom icons](https://docs.median.co/docs/custom-icons.md): Upload SVG icons for your native navigation. - [iOS contextual navigation toolbar](https://docs.median.co/docs/contextual-navigation-toolbar.md): Add back and forward controls on iOS. - [Push notifications overview](https://docs.median.co/docs/push-notifications-overview.md): Learn the types of push notifications, compare Median's push notification plugins, and set up push permissions on iOS and Android. - [Push SDK migration guide](https://docs.median.co/docs/push-notification-migration.md): Migrate between push notification SDKs such as OneSignal and Klaviyo without losing reach, tokens, or user opt-in status. - [OneSignal overview](https://docs.median.co/docs/onesignal.md): Set up OneSignal push notifications and in-app messages for your iOS and Android app, from platform credentials to testing. - [Managing permissions and consent](https://docs.median.co/docs/user-consent-management.md): Control when your app asks for push notification permission, require privacy consent before OneSignal initializes, and use a soft prompt. - [Identifying and targeting users](https://docs.median.co/docs/identifying-targeting-users.md): Associate OneSignal users with your own IDs, retrieve identifiers for backend targeting, and segment users with data tags. - [Sending push notifications](https://docs.median.co/docs/onesignal-notifications.md): Send OneSignal push notifications from the OneSignal dashboard or REST API, deep link to a page in your app, and add custom sounds. - [Programmatic notifications](https://docs.median.co/docs/programmatic-notifications.md): Send OneSignal push notifications from your server with the REST API, targeting users by external ID, segment, or device. - [Foreground notifications](https://docs.median.co/docs/foreground-notifications.md): Show or suppress OneSignal push notifications while your app is open and in focus, by default in App Studio or at runtime. - [Customize push notifications](https://docs.median.co/docs/notification-customization.md): Customize the icons, sounds, and badge counts of the OneSignal push notifications your app receives on iOS and Android. - [Handling notification taps](https://docs.median.co/docs/handling-notifications-taps.md): Route users to a page with targetUrl, pass custom data to your JavaScript handler, or do both when users tap a OneSignal notification. - [In-app messages](https://docs.median.co/docs/in-app-messages.md): Show OneSignal in-app messages in your app and control triggers, pausing, and click handling with the JavaScript Bridge. - [Legacy mode](https://docs.median.co/docs/onesignal-legacy-mode.md): Send personalized OneSignal push notifications from apps that use Legacy Mode with the iOS v3 and Android v4 SDKs, and plan your migration. - [Braze](https://docs.median.co/docs/braze.md): Add Braze push notifications and event tracking. - [Bloomreach](https://docs.median.co/docs/bloomreach.md): Add Bloomreach Engagement push notifications and tracking. - [Cordial](https://docs.median.co/docs/cordial.md): Add Cordial push notifications and contact management. - [Firebase Cloud Messaging](https://docs.median.co/docs/firebase-cloud-messaging.md): Send native push notifications with Firebase Cloud Messaging and manage permissions, tokens, topics, channels, and badges from your web app. - [Firebase Cloud Messaging](https://docs.median.co/docs/firebase-cloud-messaging.md): Send native push notifications with Firebase Cloud Messaging and manage permissions, tokens, topics, channels, and badges from your web app. - [Targeting users with Firebase Cloud Messaging](https://docs.median.co/docs/fcm-identifying-targeting-users.md): Link Firebase Cloud Messaging registration tokens to your user accounts, keep them current, and send to one user, several devices, or a topic. - [Intercom](https://docs.median.co/docs/intercom.md): Add Intercom push notifications, event tracking, and mobile carousels to your app, and control them with the JavaScript Bridge. - [Iterable](https://docs.median.co/docs/iterable.md): Add Iterable push notifications to your app, then initialize the SDK, request permission, and identify users with the JavaScript Bridge. - [Klaviyo](https://docs.median.co/docs/klaviyo.md): Add Klaviyo push notifications to your app, then request permission and manage user profiles with the JavaScript Bridge. - [Customer.io](https://docs.median.co/docs/customerio.md): Add Customer.io push notifications and event tracking. - [Microsoft Dynamics](https://docs.median.co/docs/ms-dynamics.md): Send Microsoft Dynamics 365 Customer Insights push notifications to your app, and manage permissions and device registration with the JavaScript Bridge. - [MoEngage](https://docs.median.co/docs/moengage.md): Add MoEngage push notifications to your app, and manage permissions, user identity, events, and the notification center with the JavaScript Bridge. - [Optimizely](https://docs.median.co/docs/optimizely.md): Initialize the Optimizely SDK, identify users, and manage push notification permissions and registration from your website with the JavaScript Bridge. - [Salesforce Marketing Cloud](https://docs.median.co/docs/salesforce-marketing-cloud.md): Add Salesforce Marketing Cloud MobilePush push notifications to your app, and manage contact keys, attributes, and tags with the JavaScript Bridge. - [Sendbird](https://docs.median.co/docs/sendbird.md): Add Sendbird in-app messaging and push notifications to your app, and manage users, channels, and the Sendbird UI with the JavaScript Bridge. - [JavaScript Bridge overview](https://docs.median.co/docs/javascript-bridge.md): Use the Median JavaScript Bridge library or the median:// protocol to control native app features and device hardware from your website. - [Detecting app usage](https://docs.median.co/docs/detecting-app-usage.md): Detect whether your site runs in the app. - [NPM package overview](https://docs.median.co/docs/npm-package.md): Install the median-js-bridge npm package to use the JavaScript Bridge in React, Angular, Vue.js, and other single-page apps. - [Basic usage](https://docs.median.co/docs/basic-usage.md): Example commands for the median-js-bridge npm package. - [Using listeners](https://docs.median.co/docs/npm-package-usage-with-listeners.md): Register and remove listeners with the median-js-bridge npm package to respond to native app events such as app resume and push notification taps. - [SPA navigation](https://docs.median.co/docs/npm-package-spa-navigation.md): Use the jsNavigation listener from the npm package to soft load pages in your single-page app when the native app navigates. - [Device info](https://docs.median.co/docs/device-info.md): Get device, app, and advertising ID data from your Median app with the JavaScript Bridge for analytics, support, and version checks. - [Clipboard](https://docs.median.co/docs/clipboard.md): Read and write the device clipboard. - [Prompt share dialog](https://docs.median.co/docs/prompt-share-dialogue.md): Open the native iOS and Android share dialog from your website with the JavaScript Bridge to share a URL and optional text. - [App resumed callback](https://docs.median.co/docs/app-resumed-callback.md): Run JavaScript when your app returns from the background. - [Keyboard state tracking](https://docs.median.co/docs/keyboard-state-tracking.md): Get or listen for the on-screen keyboard's visibility and size, and toggle the iOS accessory view with the JavaScript Bridge. - [Download file](https://docs.median.co/docs/download-file.md): Control file downloads and inline viewing with Content-Disposition headers, or download files and images with the JavaScript Bridge. - [Clear WebView cache](https://docs.median.co/docs/clear-webview-cache.md): Clear the webview cache to show updated content. - [Accessing callbacks in an iframe](https://docs.median.co/docs/iframe-callbacks.md): Pass JavaScript Bridge callback data, such as device info, from your parent page into an iframe with postMessage. - [Control your Median app with Google Tag Manager](https://docs.median.co/docs/google-tag-manager.md): Use Median's Google Tag Manager template to inject the JavaScript Bridge into your website and run Bridge commands from GTM tags. - [Install Median's GTM tag template](https://docs.median.co/docs/install-median-gtm-template.md): Install Median's tag template in Google Tag Manager so your GTM tags can run JavaScript Bridge commands in your app. - [Native plugins overview](https://docs.median.co/docs/native-plugins-overview.md): Learn how Median's native plugins add device features and third-party SDKs to your app, how to try and add them, and how to request custom plugins. - [Analytics](https://docs.median.co/docs/analytics.md): Compare Median's analytics plugins for tracking events, attribution, user behavior, and crashes in your iOS and Android app. - [Adjust](https://docs.median.co/docs/adjust.md): Track installs, in-app events, revenue, and attribution in your app with the Adjust plugin and the Median JavaScript Bridge. - [AppsFlyer](https://docs.median.co/docs/appsflyer.md): Measure installs and campaign attribution with AppsFlyer, log custom in-app events, and read conversion and deep link data in your app. - [Branch.io](https://docs.median.co/docs/branch-io.md): Add deferred deep linking with Branch.io. - [Google Firebase Analytics](https://docs.median.co/docs/firebase-analytics.md): Track user behavior in your app with Google Firebase Analytics: consent, user properties, custom events, screen views, and eCommerce events. - [Google Firebase Crashlytics](https://docs.median.co/docs/crashlytics.md): Track and fix app crashes with Firebase Crashlytics. - [Meta App Events](https://docs.median.co/docs/facebook.md): Track Meta App Events in your app with the native iOS and Android Meta SDKs, including auto-logged, custom, and purchase events. - [Intent Edge](https://docs.median.co/docs/intent-edge.md): Add Intent Edge on-device AI segmentation and real-time campaigns to your app, controlled from your website with the JavaScript Bridge. - [Authentication](https://docs.median.co/docs/authentication.md): Compare Median's authentication plugins and learn how sessions, two-factor authentication, and magic links work in a hybrid webview app. - [Auth0](https://docs.median.co/docs/auth0.md): Add native Auth0 Universal Login to your app, store refresh tokens securely, and enable Face ID, Touch ID, and Android biometrics. - [Clerk](https://docs.median.co/docs/clerk.md): Add native Clerk sign-in and session management. - [Face ID, Touch ID, and Android biometrics](https://docs.median.co/docs/auth.md): Add biometric authentication on iOS and Android. - [Apple Face ID & Touch ID](https://docs.median.co/docs/apple-face-id-touch-id.md): Authenticate iOS users with Face ID or Touch ID by saving and retrieving a secret in the iOS Keychain with the JavaScript Bridge. - [Android biometric](https://docs.median.co/docs/android-biometric-auth.md): Authenticate Android users with fingerprint or face unlock by saving and retrieving an encrypted secret with the JavaScript Bridge. - [Passkey authentication (WebAuthn)](https://docs.median.co/docs/passkey-authentication.md): Let users sign in to your app with passkeys and Face ID, Touch ID, or fingerprint unlock, using the WebAuthn standard on iOS and Android. - [Social login overview](https://docs.median.co/docs/social-login.md): Add native Facebook Login, Google Sign-In, and Sign in with Apple to your app with Median's Social Login plugin, from provider setup to testing. - [Facebook Login configuration](https://docs.median.co/docs/facebook-login-configuration.md): Create and configure a Meta app for Facebook Login on iOS and Android, then add its credentials to the Social Login plugin in App Studio. - [Google Sign-In configuration](https://docs.median.co/docs/google-sign-in-configuration.md): Create a Google Cloud project and OAuth clients for iOS, Android, and web, then add the credentials to the Social Login plugin in App Studio. - [Sign in with Apple configuration](https://docs.median.co/docs/sign-in-with-apple-configuration.md): Register a Service ID, configure web authentication, and add the required iOS capability to set up Sign in with Apple for your Median app. - [Website configuration](https://docs.median.co/docs/social-login-website-configuration.md): Connect your existing website login buttons to native Facebook, Google, and Apple sign-in with the Median JavaScript Bridge. - [Server-side redirects](https://docs.median.co/docs/social-login-server-side-redirects.md): Handle Facebook, Google, and Apple social login on your backend by redirecting authentication tokens to your server as URL parameters. - [JavaScript callbacks](https://docs.median.co/docs/social-login-javascript-callbacks.md): Handle Facebook, Google, and Apple social login in your website's JavaScript with callbacks from the Median JavaScript Bridge. - [Enterprise overview](https://docs.median.co/docs/enterprise.md): Compare Median's enterprise plugins for security and compliance: jailbreak and root detection, Microsoft Intune, and data protection controls. - [Enterprise security](https://docs.median.co/docs/enterprise-plugin.md): Enforce enterprise security controls in your app: copy/paste and screen capture prevention, HTTPS-only networking, preview masking, and root detection. - [Jailbreak/root detection](https://docs.median.co/docs/jailbreak-root-detection.md): Detect jailbroken iOS and rooted Android devices through URL query parameters, and redirect compromised devices with the JavaScript Bridge. - [Microsoft Intune](https://docs.median.co/docs/microsoft-intune.md): Add the Intune App SDK to your app for Microsoft Intune MDM and MAM, and register your app in Microsoft Entra ID with the required permissions. - [Integrations](https://docs.median.co/docs/integrations.md): Compare Median's integration plugins for subscriptions, ads, CRM, marketing automation, and other third-party services. - [AdMob native ads](https://docs.median.co/docs/admob-native-ads.md): Show Google AdMob banner and interstitial ads in your app, and handle iOS tracking consent and GDPR consent with the JavaScript Bridge. - [Bubble plugin](https://docs.median.co/docs/bubble-plugin.md): Call the JavaScript Bridge from your Bubble app. - [Card.io](https://docs.median.co/docs/card-io.md): Scan credit cards with the device camera. - [Master Lock](https://docs.median.co/docs/master-lock.md): Unlock Master Lock Bluetooth padlocks, lockboxes, and deadbolts, update firmware, and reset locks with the Master Lock plugin and the JavaScript Bridge. - [RevenueCat](https://docs.median.co/docs/revenue-cat.md): Add in-app purchases, subscriptions, and paywalls to your iOS and Android app with RevenueCat and the JavaScript Bridge. - [Social share overview](https://docs.median.co/docs/social-share.md): Share images, video, and text directly to Instagram and Snapchat destinations from your app with Median's Social Share plugin. - [Instagram](https://docs.median.co/docs/social-share-instagram.md): Check whether Instagram is installed and share images directly to the Instagram Feed, Stories, or Reels with the JavaScript Bridge. - [Snapchat](https://docs.median.co/docs/social-share-snapchat.md): Check whether Snapchat is installed and share images and text directly to the Snapchat app with the JavaScript Bridge. - [Media](https://docs.median.co/docs/media.md): Compare Median's media plugins for native audio playback, video streaming, video chat, and screenshots. - [Background audio](https://docs.median.co/docs/background-audio.md): Record microphone audio while your app is in the background or the device is locked, with optional on-device transcription. - [JW Player](https://docs.median.co/docs/jwplayer.md): Play single videos, playlists, and JW Player playlist URLs in a native full-screen player with the JW Player plugin and the JavaScript Bridge. - [Kaltura media player](https://docs.median.co/docs/kaltura-media-player.md): Stream live and on-demand Kaltura video in a native player with AirPlay and Chromecast support, using the JavaScript Bridge. - [Native media player](https://docs.median.co/docs/native-media-player.md): Play audio tracks and playlists in the background with native lock screen and notification controls using the Native Media Player plugin. - [Twilio Video](https://docs.median.co/docs/twilio.md): Add a native Twilio Video chat interface to your app and join video call rooms from your website with the JavaScript Bridge. - [Web screenshot](https://docs.median.co/docs/web-screenshot.md): Capture the visible web content or a specific web element as an image, then share it or export it as a Blob with the JavaScript Bridge. - [Zoom](https://docs.median.co/docs/zoom.md): Add in-app video calls to your app with the Zoom Video SDK, and join sessions from your website with the Median JavaScript Bridge. - [Native functionality](https://docs.median.co/docs/native-functionality.md): Compare Median's plugins for native device features such as haptics, biometrics, in-app purchases, health data, contacts, and offline storage. - [AgeSafety](https://docs.median.co/docs/age-safety.md): Check a user's age range and supervision status with platform age signals, and gate content or purchases for minors in your app. - [App review](https://docs.median.co/docs/app-review.md): Prompt users to rate and review your app on the Apple App Store or Google Play Store with the App Review plugin. - [Background location](https://docs.median.co/docs/background-location.md): Receive location updates while your app is in the background. - [Calendar](https://docs.median.co/docs/calendar.md): Let users add events to their device calendar. - [Haptics](https://docs.median.co/docs/haptics.md): Trigger haptic feedback effects and respond to the shake gesture on iOS and Android with the Haptics plugin and the JavaScript Bridge. - [Health Bridge](https://docs.median.co/docs/health-bridge.md): Read health data such as steps, heart rate, calories, and sleep from Apple HealthKit and Google Health Connect with the Health Bridge plugin. - [In-App Purchases](https://docs.median.co/docs/iap.md): Sell subscriptions and digital goods in your app with Apple StoreKit and Google Play Billing, and check when in-app purchases are required. - [Apple In-App Purchases](https://docs.median.co/docs/apple-iap.md): Sell digital goods and subscriptions on iOS with Apple In-App Purchases, verify purchases on your server or on-device, and restore them. - [Google In-App Purchases](https://docs.median.co/docs/google-iap.md): Sell in-app products and subscriptions in your Android app with Google Play Billing, from product setup to purchase verification and testing. - [Google In-App Purchases (legacy)](https://docs.median.co/docs/google-iap-legacy.md): Reference for the legacy Google In-App Purchases plugin. For new implementations, use the current Google In-App Purchases guide. - [Native contacts](https://docs.median.co/docs/native-contacts.md): Check contact permissions, retrieve all device contacts, or show the native contact picker with the Native Contacts plugin and the JavaScript Bridge. - [Native datastore](https://docs.median.co/docs/native-datastore.md): Store key-value data such as user preferences on the device or in the user's cloud account with the Native Datastore plugin and the JavaScript Bridge. - [Offline download manager](https://docs.median.co/docs/offline-download-manager.md): Download documents and media files to the device so users can open them offline, and track progress with the JavaScript Bridge. - [Reader modal](https://docs.median.co/docs/reader-modal.md): Show Apple's external link modal in reader apps so users can manage accounts and payments on your website, using the JavaScript Bridge. - [Secure modal](https://docs.median.co/docs/secure-modal.md): Open Apple Pay on the web and other secure third-party scripts in a secure modal window, and get a callback when the modal closes. - [Share into app](https://docs.median.co/docs/share-into-app.md): Let users share URLs from other apps into your app and receive the shared URL and page title in a JavaScript callback. - [Scanning](https://docs.median.co/docs/scanning.md): Compare Median's plugins for QR code, barcode, document, NFC tag, and beacon scanning, and pick the right one for your app. - [Document scanner](https://docs.median.co/docs/document-scanner.md): Scan documents with the device camera, with automatic edge detection, cropping, and enhancement, and get the result as a base64 JPEG. - [iBeacon](https://docs.median.co/docs/ibeacon.md): Scan for nearby iBeacons from your web app with the JavaScript Bridge and get each beacon's UUID, major, minor, signal strength, and proximity. - [NFC tag scanner](https://docs.median.co/docs/nfc-tag-scanner.md): Read NFC tags from your website on iOS and Android with the NFC Tag Scanner plugin. - [QR / barcode scanner](https://docs.median.co/docs/qr-barcode-scanner.md): Scan QR codes and barcodes with the device camera from your website, using the JavaScript Bridge and open-source scanning libraries. - [Scandit QR / barcode](https://docs.median.co/docs/scandit-qr-barcode.md): Scan QR codes and barcodes with the Scandit SDKs on iOS and Android, and restrict symbologies or add parsers. Requires an active Scandit license. - [Website builder overview](https://docs.median.co/docs/ai-app-builder-overview.md): Turn apps from AI builders like Lovable, Replit, and Base44 into native iOS and Android apps, then publish, monetize, and grow them. - [Base44](https://docs.median.co/docs/base44.md): Convert your Base44 app into a native mobile app. - [Getting started with Base44](https://docs.median.co/docs/getting-started-with-base44.md): Build a to-do app with Base44, turn it into a native iOS and Android app with Median, and add the JavaScript Bridge and app detection. - [Add push notifications to a Base44 app](https://docs.median.co/docs/add-push-notifications-to-a-base44-app.md): Add OneSignal push notifications to your Base44 app with AI prompts: register users, send from a backend function, and trigger on events. - [Adding haptic feedback to your Base44 app](https://docs.median.co/docs/adding-haptic-feedback-to-your-base44-app.md): Add haptic feedback to your Base44 app with AI prompts and the Median JavaScript Bridge, then test it on a real device. - [Lovable](https://docs.median.co/docs/lovable.md): Convert your Lovable app into a native mobile app. - [Tutorial: Build a fitness tracker app with Lovable and Median](https://docs.median.co/docs/getting-started-with-lovable.md): Build a fitness tracker app with Lovable and turn it into a native app with Median, Health Bridge, OneSignal push notifications, and haptics. - [Add push notifications to your Lovable app](https://docs.median.co/docs/add-push-notifications-to-your-lovable-app.md): Add OneSignal push notifications to your Lovable app with AI prompts, Supabase Edge Functions, and the Median JavaScript Bridge. - [Add haptic feedback to your Lovable app](https://docs.median.co/docs/add-haptic-feedback-to-your-lovable-app.md): Add haptic feedback to your Lovable app with AI prompts and the Median JavaScript Bridge, then test it on a real device. - [Prepare your Lovable app for publishing](https://docs.median.co/docs/prepare-your-lovable-app-for-publishing.md): Test your Lovable app on physical devices, verify sign-in, permissions, and payments, and prepare your App Store and Google Play listings. - [Replit](https://docs.median.co/docs/replit.md): Convert your Replit web app into native iOS and Android apps with Median, and prompt Replit Agent to add native features. - [Getting started with Replit](https://docs.median.co/docs/getting-started-with-replit.md): Build a to-do app with Replit, turn it into a native iOS and Android app with Median, and add the JavaScript Bridge and app detection. - [Add push notifications to your Replit app](https://docs.median.co/docs/add-push-notifications-to-a-replit-app.md): Add OneSignal push notifications to your Replit app with AI prompts: register users, send from a backend endpoint, and automate delivery. - [Add haptic feedback to your Replit app](https://docs.median.co/docs/add-haptic-feedback-to-your-replit-app.md): Add haptic feedback to your Replit app with AI prompts and the Median JavaScript Bridge, then test it on a real device. - [Salesforce overview](https://docs.median.co/docs/salesforce.md): Turn your Salesforce Experience Cloud site into a native iOS and Android app with Median, and find the guide for each step of the integration. - [Getting started with Salesforce Experience Cloud](https://docs.median.co/docs/getting-started-with-salesforce-experience-cloud.md): Connect your Salesforce Experience Cloud site to a Median app and configure its Content Security Policy so the JavaScript Bridge works. - [Lightning Web Components and the Median JavaScript Bridge](https://docs.median.co/docs/salesforce-lwc-median.md): Access the JavaScript Bridge from Lightning Web Components under Lightning Web Security, set a mobile-aware user agent, and choose a runtime. - [Deep linking for Salesforce Experience Cloud](https://docs.median.co/docs/salesforce-deep-linking.md): Host the AASA and Asset Links files on Salesforce Experience Cloud with Apex and Visualforce so links to your site open your Median app. - [Salesforce LWC component deployment and reference](https://docs.median.co/docs/salesforce-lwc-components.md): Deploy Median's open-source Lightning Web Components to your Salesforce org, and build custom components that call the JavaScript Bridge. - [App monetization](https://docs.median.co/docs/app-monetization.md): Sell subscriptions and in-app purchases in your app with RevenueCat or native in-app purchases, and choose the right approach for your app. - [App marketing and growth](https://docs.median.co/docs/app-marketing-growth.md): Plan your app launch, optimize your store listing, track key metrics, and drive user adoption and reviews after you publish. - [Build and test overview](https://docs.median.co/docs/development-test-deep-dive.md): Build, test, and debug your Median app with App Studio simulators, browser dev tools, physical devices, and platform diagnostic tools. - [Median App Studio](https://docs.median.co/docs/app-studio.md): Configure, build, and download your app in Median App Studio, and test it in the browser with built-in iOS and Android simulators. - [Debug tools](https://docs.median.co/docs/debug-tools.md): Debug webview logs with debug tools and Appetize. - [iOS debugging](https://docs.median.co/docs/ios-debugging.md): Debug your iOS app with Xcode and Safari Web Inspector on a simulator or physical device to inspect logs, network activity, and JavaScript errors. - [Android debugging](https://docs.median.co/docs/android-debugging.md): Debug your Android app with Chrome DevTools, either in the Android Emulator or on a physical device. - [iOS build & deployment](https://docs.median.co/docs/ios-build-deployment.md): Build your iOS app in App Studio, test it in TestFlight, and publish it to the App Store, or build from source in Xcode if you need to. - [Building an iOS binary (IPA)](https://docs.median.co/docs/build-ios-binary.md): Create a signed iOS IPA in App Studio. - [Connecting Median with App Store Connect](https://docs.median.co/docs/connecting-median-appstore-connect.md): Connect App Studio to App Store Connect. - [Register testing devices](https://docs.median.co/docs/registering-testing-devices.md): Register iPhones and iPads by UDID in App Studio, by email invitation or manually, so testers can install your iOS app before publishing. - [Configure signing for your app](https://docs.median.co/docs/configure-signing-for-your-app.md): Set up iOS signing for your app. - [Building an iOS binary with App Groups entitlement](https://docs.median.co/docs/building-an-ios-binary-for-apps-using-app-groups-entitlements.md): Configure App Groups for your iOS build. - [Install iOS IPA](https://docs.median.co/docs/install-ios-ipa.md): Install a development IPA from Median App Studio on registered iOS devices with a QR code, after enabling Developer Mode. - [Build iOS from source](https://docs.median.co/docs/build-ios-from-source.md): Build and run your iOS app locally in Xcode. - [Common Xcode issues](https://docs.median.co/docs/common-xcode-issues.md): Fix common Xcode build errors. - [Upload an iOS app to TestFlight](https://docs.median.co/docs/upload-ios-to-testflight.md): Upload your iOS app to TestFlight from App Studio automatically, or manually with Xcode, and invite internal testers in App Store Connect. - [Upload iOS to Apple App Store](https://docs.median.co/docs/upload-ios-to-apple-app-store.md): Upload your iOS app from App Studio to App Store Connect automatically, then manage TestFlight and App Review in App Store Connect. - [Android build and deployment](https://docs.median.co/docs/android-build-deployment.md): Build, test, and distribute your Android app with APKs, Android App Bundles, and Google Play. - [Install Android APK](https://docs.median.co/docs/install-android-apk.md): Install an APK from Median App Studio on an Android device for testing, and fix the "App not installed" error. - [Build Android from source](https://docs.median.co/docs/build-android-from-source.md): Build a signed APK or AAB in Android Studio. - [Connect Android Studio emulators to localhost websites](https://docs.median.co/docs/android-studio-with-localhost-website.md): Load a website running on your computer in your app in the Android Emulator, so you can test changes before you deploy them. - [Android App Bundle (AAB)](https://docs.median.co/docs/android-app-bundle.md): Learn how APKs and Android App Bundles differ, and how developer signing compares to Google Play App Signing. - [Upload Android to Google Play](https://docs.median.co/docs/upload-android-to-google-play.md): Build a signed Android App Bundle in App Studio and upload it to the Google Play Console for testing and production release. - [App configuration and management](https://docs.median.co/docs/app-configuration-management.md): Manage app identifiers, appConfig.json, backups, multiple app instances, and CI/CD builds for your iOS and Android apps. - [App identifiers](https://docs.median.co/docs/app-identifiers.md): Set your iOS bundle ID, Android package name, and Android version name before you publish your app. - [App configuration](https://docs.median.co/docs/app-configuration-appconfigjson.md): Edit and import your app's appConfig.json file. - [Google Services](https://docs.median.co/docs/google-services.md): Generate the Firebase configuration files for iOS and Android and upload them in App Studio to enable Firebase features in your app. - [Google developer verification](https://docs.median.co/docs/google-developer-verification.md): Get your ADI registration value from Google Play Console and add it in App Studio so future Android builds include it. - [Backup management](https://docs.median.co/docs/backup-management.md): Name, bookmark, and restore App Studio backups. - [Multiple app instances](https://docs.median.co/docs/multiple-app-instances.md): Manage pre-production and whitelabeled app instances in Median, and import configuration between apps in App Studio. - [CI/CD integration](https://docs.median.co/docs/cicd-integration.md): Download builds and source code through the CI/CD API. - [Publishing overview](https://docs.median.co/docs/publishing-overview.md): Choose between self-publishing and Median's Publishing Service, and follow the steps to publish your app on the App Store and Google Play. - [Publishing guide](https://docs.median.co/docs/publishing-guide.md): Follow best practices for App Store and Google Play approval, and publish your iOS app yourself from App Studio. - [Publishing Service process](https://docs.median.co/docs/publishing-service.md): Learn what happens after you buy Median's Publishing Service, and what our team needs from you to publish your app. - [Apple App Store](https://docs.median.co/docs/apple-app-store.md): Publish your iOS app to the Apple App Store: set up your Apple Developer account, signing, store listing, and screenshots, then upload your build. - [Google Play Store](https://docs.median.co/docs/google-play-store.md): Prepare and publish your Android app to Google Play: developer account, package name, version name, screenshots, and build submission. - [Screenshot specifications](https://docs.median.co/docs/app-store-screenshots.md): Check the screenshot sizes and formats that App Store Connect and Google Play accept for your store listing. - [Publishing FAQ](https://docs.median.co/docs/faq-publishing.md): Find answers to common questions about publishing your Median app to the Apple App Store and Google Play, from review times to payments. - [Changelog](https://docs.median.co/docs/changelog.md): App Studio, iOS and Android releases from the last 12 months. Filter by release type or product. - [Changelog archive](https://docs.median.co/docs/changelog-archive.md): App Studio, iOS and Android releases from more than 12 months ago. - [AGENTS](https://docs.median.co/AGENTS.md) This documentation is built and hosted on [Mintlify](https://mintlify.com), a developer documentation platform.