Native Bridge

Native Features Matrix

Explore all 20+ native features available in Nativify

Feature Description API Method Required Permission 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() Location
Watch Location Stream real-time location updates watchLocation(cb) Location
Background Tracking Track location/activity in background startTracking(options) Location, Activity
Activity History View and manage activity data getActivityHistory() Activity
Take Photo Capture image from camera takePhoto() Camera
Pick Image Select image from gallery pickImage() Camera
Pick Video Select video from gallery pickVideo() Camera
QR Scan Native QR/Barcode scanner scanQRCode() Camera
Step Count Real-time pedometer data getSteps() Activity
Save Data Save persistent data to native storage saveData(key, val) Storage
Load Data Load data from native storage loadData(key) Storage
Delete Data Remove data from native storage deleteData(key) Storage
Clipboard Copy and paste text copyToClipboard(text) -
Show Notification Display local notification showNotification() Notification
Push Registration Register and unregister targeted push users Nativify.push.register(...) / unregister(...) Notification
Battery Optimization Manage battery optimization settings requestBatteryOptimizations() Battery
Biometric Auth Fingerprint/FaceID authentication authenticate() -
File Download Download files with save/share/open modes Nativify.downloadFile({ url, filename, mode }) Storage
Make Phone Call Open native dialer makePhoneCall(num) Phone
Send SMS Open native messaging app sendSMS(num, msg) SMS
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.