Native Bridge

Native Features Matrix

Explore all 20+ native features available in Nativify

Feature Description API Method Android iOS
Device Info Get device model, OS version, etc. getDeviceInfo()
App State Check environment (dev/prod), localhost status getAppState()
Version Info Detailed app runtime & SDK versions getVersionInfo()
Vibrate Haptic feedback with vibration fallback Nativify.haptic(type)
Toast Show native toast message showToast(msg)
Dialog Show native alert/confirm dialog showDialog(title, msg)
Status Bar Set status bar color and brightness setStatusBar(options)
Orientation Lock screen to portrait/landscape setOrientation(mode)
Safe Area Get device safe area insets getSafeArea()
Widget Update Update home screen widget data updateWidget(data)
Get Location Get current GPS coordinates getLocation()
Watch Location Stream real-time location updates watchLocation(cb)
Background Tracking Track location/activity in background startTracking(options)
Activity History View and manage activity data getActivityHistory()
Take Photo Capture image from camera takePhoto()
Pick Image Select image from gallery pickImage()
Pick Video Select video from gallery pickVideo()
QR Scan Native QR/Barcode scanner scanQRCode()
Step Count Real-time pedometer data getSteps()
Save Data Save persistent data to native storage saveData(key, val)
Load Data Load data from native storage loadData(key)
Delete Data Remove data from native storage deleteData(key)
Clipboard Copy and paste text copyToClipboard(text)
Show Notification Display local notification showNotification()
Push Registration Register and unregister targeted push users Nativify.push.register(...) / unregister(...)
Battery Optimization Manage battery optimization settings requestBatteryOptimizations()
Biometric Auth Fingerprint/FaceID authentication authenticate()
File Download Download files with save/share/open modes Nativify.downloadFile({ url, filename, mode })
Make Phone Call Open native dialer makePhoneCall(num)
Send SMS Open native messaging app sendSMS(num, msg)
Open URL Open URL in external browser Nativify.openOutLink(url)
Go Back Navigate back in WebView history goBack()
Exit App Close app process (Android) exitApp()

🍎 iOS Platform Limitations

Due to iOS security policies and system restrictions, some features have specific requirements or limitations:

⚠️ Background Location Tracking

  • Requires "Always" location permission (must be enabled manually in Settings)
  • iOS suspends apps after ~30 seconds in background
  • Requires Info.plist configuration: NSLocationAlwaysAndWhenInUseUsageDescription
  • Xcode "Background Modes" → "Location updates" must be enabled

⚠️ Step Counter / Pedometer

  • Requires HealthKit permissions
  • Must add NSHealthShareUsageDescription and NSHealthUpdateUsageDescription to Info.plist
  • User must explicitly grant HealthKit access

⚠️ Home Screen Widget Updates

  • Minimum update interval: 5 minutes
  • Daily update limit: 40-70 updates per 24 hours (every 15-60 minutes)
  • System controls update timing - developers cannot force immediate updates
  • Widget UI must be implemented with platform-native UI
  • Data sharing requires App Groups and UserDefaults

Battery Optimization

Not available on iOS - Android-only feature

ℹ️ General Permission Requirements

Most features (Camera, Location, Notifications, Biometric Auth, etc.) require explicit user permission on iOS. Users will see permission dialogs on first use, and permissions can be managed in iOS Settings.

Note: These limitations are imposed by Apple's iOS platform to protect user privacy and optimize battery life. For detailed implementation guides, please refer to our API Documentation.