One Logo Pool Ball
wwwwwwwwwwwwwwwwwww

Platform Support

What every native API does on iOS, Android, and web

FeatureiOSAndroidWeb
Responsive icon colorsOne.UI.Icon + UIKit semantic colorsOne.UI.Icon + adaptive Material color schemeapp-provided element
Zoom TransitionsiOS 18+unsupportedunsupported
ToolbarUIToolbar + SF Symbolsunsupportedunsupported
Menu ActionsUIMenu / UIActionunsupportedunsupported
SplitViewiPad (gamma required)routed slot fallbackrouted slot fallback
IconsSF Symbols via One.iOS.ImageMaterial Symbols via One.Android.Iconunsupported
Shared icon selectionOne.UI.IconOne.UI.Iconapp-provided React element
SwiftUI controls and containersOne.iOS.*unsupported (throws)unsupported (throws)
Compose viewsunsupported (throws)One.Android.*unsupported (throws)
EdgeFade, Blur, Masknative primitivenative primitiveCSS gradients, backdrop-filter, alpha mask-image
GradientsRN 0.87 backgroundImage (see Gradients)RN 0.87 backgroundImage (see Gradients)see Gradients
TextInput, native stateOne.UI.*One.UI.*One.UI.* (web behavior)
Safe areaOne.UI.SafeAreaOne.UI.SafeAreaOne.UI.SafeArea (css env)
Size class, hingewindow scene size class + UIHingeWindowMetrics size class (compact below 600dp wide / 480dp tall) + FoldingFeature hinge (null with no hinge)regular size class, null hinge
ColorsOne.iOS.ColorOne.Android.Colornull
Notificationspermission, badge, channels (no-op), events, handler, schedulingpermission, badge (no-op), channels, events, handler, schedulingdenied, inert
ClipboardUIPasteboardClipboardManagernavigator.clipboard
NetworkNWPathMonitorConnectivityManagernavigator.onLine
BrowserSFSafariViewController + ASWebAuthenticationSessionCustom Tabswindow.open
HapticsUIFeedbackGenerator trioperformHapticFeedback mappingno-op
Cryptoarc4random_bufarc4random_bufplatform crypto
ImagePickerPHPickerViewController + camerasystem photo picker + camera intentfile dialog + capture input
Photo Librarysave, browse, edit, albums, and exportsave, browse, albums, favorite, delete, and export over MediaStore; album edits and content replace/revert unsupportedunsupported (throws)
Image Manipulatorlocal crop, resize, rotate, JPEG/PNG encodelocal crop, resize, rotate, JPEG/PNG encodecanvas crop, resize, rotate, JPEG/PNG blob URLs
DocumentPickerUIDocumentPickerViewControllerACTION_OPEN_DOCUMENTfile dialog
SecureStoreKeychain, readable while unlockedAES-256-GCM, key in AndroidKeyStorerejects
MapOne.UI.Map (MapKit)One.UI.Map (Google Maps, key required)renders nothing
Picture in PictureAVPictureInPictureController (sample buffer source)activity pip moderenders inline
WebGPUreact-native-webgpu (Dawn)react-native-webgpu (Dawn)navigator.gpu
DeviceUIDevice + Locale snapshotBuild + Locale snapshot; ANDROID_ID vendor IDbrowser platform + Intl; no hardware identity
KeepAwakeidle timer flagwindow keep-screen-on flag, re-applied on resumeScreen Wake Lock where present
ScreenOrientationscene geometry locks + listenersdisplay rotation locks + listeners; runtime overrides manifestscreen.orientation; unsupported locks reject
Shareactivity sheet + completionsystem chooser; completed when a target is chosennavigator.share where present
PrintAirPrint sheet + completionPrintManager + PDF raster at job resolutionunavailable (see Print)
QuickActionsshortcut items + cold/warm deliverydynamic shortcuts + cold/warm deliveryunavailable
AppIconalternate icon setsmanifest activity-alias entriesunavailable
LocationCoreLocation + geocoderLocationManager + Geocoder; background via foreground servicegeolocation; no geocoder
MapServicesMapKit search, autocomplete, directionsGeocoder search only; rest unavailableunavailable
LocalAuthenticationLAContext biometricsBiometricManager + BiometricPromptunavailable
ScreenCapturescene capture state + screenshot notificationsactivity screenshot callback (34+) + window-manager recording state (35+); PixelCopy PNG capture (26+)unavailable

One.iOS.ToolbarHost, One.iOS.MenuAction, and the ZoomTransition* components return null on other platforms, so they are safe to keep in cross-platform component trees. SplitView renders its routed slot without native columns on Android and web. Other SwiftUI components, including Menu, ContextMenu, and Toolbar, throw outside iOS builds, and Compose components throw outside Android builds, so keep those branches behind platform checks.

Root serviceWeb behavior
FileSystemorigin-private folders and committed OPFS writes
Motionobserved device events; magnetometer unavailable
Speechbrowser recognition API where present
Devicebrowser platform and Intl localization; no hardware identity
KeepAwakeScreen Wake Lock where present; browser release is reflected
ScreenOrientationscreen.orientation; unsupported locks reject
Sharenavigator.share where present; cancellation is incomplete
Printunavailable: current-document print cannot return PDF completion
Locationgeolocation positions and foreground watches; no geocoder
AudioHTMLAudioElement, MediaRecorder, optional Media Session
ContactsContact Picker where present; no address-book access or editing

Browser capabilities depend on context and permissions. SSR preserves each service’s existing unavailable contract.

Edit this page on GitHub.