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.plistconfiguration:NSLocationAlwaysAndWhenInUseUsageDescription - Xcode "Background Modes" → "Location updates" must be enabled
⚠️ Step Counter / Pedometer
- Requires HealthKit permissions
- Must add
NSHealthShareUsageDescriptionandNSHealthUpdateUsageDescriptiontoInfo.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.