|
2 | 2 | title: APIs |
3 | 3 | order: 4 |
4 | 4 | --- |
5 | | - |
6 | | -# API Reference |
7 | | - |
8 | | -Complete documentation for all NativePHP Mobile APIs. Each API provides access to native device capabilities through familiar PHP facades. |
9 | | - |
10 | | -## Available APIs |
11 | | - |
12 | | -### [Biometrics](/docs/mobile/1/apis/biometrics) |
13 | | -**Face ID, Touch ID, Fingerprint Authentication** |
14 | | -```php |
15 | | -Biometrics::promptForBiometricID(); |
16 | | -``` |
17 | | -Secure user authentication using device biometric sensors. Supports Face ID on iOS, Touch ID, and fingerprint readers on Android. |
18 | | - |
19 | | -### [Camera](/docs/mobile/1/apis/camera) |
20 | | -**Photo Capture & Gallery Access** |
21 | | -```php |
22 | | -Camera::getPhoto(); |
23 | | -Camera::pickImages('images', true, 5); |
24 | | -``` |
25 | | -Take photos with the device camera or select images from the photo gallery. Supports both single and multiple image selection. |
26 | | - |
27 | | -### [Dialog](/docs/mobile/1/apis/dialog) |
28 | | -**Native UI Elements** |
29 | | -```php |
30 | | -Dialog::alert('Title', 'Message', $buttons, $callback); |
31 | | -Dialog::toast('Success message'); |
32 | | -Dialog::share('Title', 'Text', 'https://example.com'); |
33 | | -``` |
34 | | -Display native alerts, toast notifications, and sharing interfaces that match platform design guidelines. |
35 | | - |
36 | | -### [Geolocation](/docs/mobile/1/apis/geolocation) ⭐ New in v1.1 |
37 | | -**GPS & Location Services** |
38 | | -```php |
39 | | -Geolocation::getCurrentPosition(true); // High accuracy |
40 | | -Geolocation::checkPermissions(); |
41 | | -Geolocation::requestPermissions(); |
42 | | -``` |
43 | | -Access device location services with configurable accuracy levels and proper permission handling. |
44 | | - |
45 | | -### [Haptics](/docs/mobile/1/apis/haptics) |
46 | | -**Vibration & Tactile Feedback** |
47 | | -```php |
48 | | -Haptics::vibrate(); |
49 | | -``` |
50 | | -Provide tactile feedback for user interactions, form validation, and important events. |
51 | | - |
52 | | -### [PushNotifications](/docs/mobile/1/apis/push-notifications) |
53 | | -**Firebase Cloud Messaging** |
54 | | -```php |
55 | | -PushNotifications::enrollForPushNotifications(); |
56 | | -PushNotifications::getPushNotificationsToken(); |
57 | | -``` |
58 | | -Register devices for push notifications and manage FCM tokens for server-side notification delivery. |
59 | | - |
60 | | -### [SecureStorage](/docs/mobile/1/apis/secure-storage) ⭐ New in v1.1 |
61 | | -**Keychain & Keystore Operations** |
62 | | -```php |
63 | | -SecureStorage::set('api_token', $token); |
64 | | -$token = SecureStorage::get('api_token'); |
65 | | -SecureStorage::delete('api_token'); |
66 | | -``` |
67 | | -Store sensitive data securely using iOS Keychain and Android Keystore with automatic encryption. |
68 | | - |
69 | | -### [System](/docs/mobile/1/apis/system) |
70 | | -**System Functions & Legacy API** |
71 | | -```php |
72 | | -System::flashlight(); // Toggle flashlight |
73 | | -``` |
74 | | -Control system functions like the flashlight. Also provides deprecated methods that have moved to dedicated facades. |
75 | | - |
76 | | -## API Patterns |
77 | | - |
78 | | -### Synchronous APIs |
79 | | -Execute immediately and return results: |
80 | | -- `Haptics::vibrate()` |
81 | | -- `System::flashlight()` |
82 | | -- `Dialog::toast()` |
83 | | -- `SecureStorage::set()` / `get()` |
84 | | - |
85 | | -### Asynchronous APIs |
86 | | -Trigger operations and fire events when complete: |
87 | | -- `Camera::getPhoto()` → `PhotoTaken` event |
88 | | -- `Biometrics::promptForBiometricID()` → `Completed` event |
89 | | -- `PushNotifications::enrollForPushNotifications()` → `TokenGenerated` event |
90 | | -- `Geolocation::getCurrentPosition()` → `LocationReceived` event |
91 | | - |
92 | | -### Event Handling |
93 | | -All async APIs use Laravel events with Livewire integration: |
94 | | - |
95 | | -```php |
96 | | -use Livewire\Attributes\On; |
97 | | -use Native\Mobile\Events\Camera\PhotoTaken; |
98 | | - |
99 | | -#[On('native:' . PhotoTaken::class)] |
100 | | -public function handlePhotoTaken(string $path) |
101 | | -{ |
102 | | - // Process the captured photo |
103 | | -} |
104 | | -``` |
105 | | - |
106 | | -## Migration from System Facade |
107 | | - |
108 | | -Many methods have moved from the `System` facade to dedicated facades in v1.1: |
109 | | - |
110 | | -| Old (Deprecated) | New (Recommended) | |
111 | | -|------------------|-------------------| |
112 | | -| `System::camera()` | `Camera::getPhoto()` | |
113 | | -| `System::vibrate()` | `Haptics::vibrate()` | |
114 | | -| `System::promptForBiometricID()` | `Biometrics::promptForBiometricID()` | |
115 | | -| `System::enrollForPushNotifications()` | `PushNotifications::enrollForPushNotifications()` | |
116 | | -| `System::secureSet()` / `secureGet()` | `SecureStorage::set()` / `get()` | |
117 | | - |
118 | | -The old methods still work but are deprecated. See the [System API documentation](/docs/mobile/1/apis/system) for complete migration guidance. |
119 | | - |
120 | | -## Platform Support |
121 | | - |
122 | | -All APIs work on both iOS and Android with platform-appropriate implementations: |
123 | | -- **iOS**: Uses native iOS frameworks and APIs |
124 | | -- **Android**: Uses Android SDK and native libraries |
125 | | -- **Permissions**: Automatically handled with user prompts when required |
126 | | -- **Fallbacks**: Graceful degradation when features aren't available |
127 | | - |
128 | | -## Error Handling |
129 | | - |
130 | | -APIs provide both success and error events for proper error handling: |
131 | | - |
132 | | -```php |
133 | | -#[On('native:' . PhotoTaken::class)] |
134 | | -public function handleSuccess($data) { /* ... */ } |
135 | | - |
136 | | -#[On('native:' . PermissionDenied::class)] |
137 | | -public function handleError($error) { /* ... */ } |
138 | | -``` |
139 | | - |
140 | | -Each API documentation includes complete error handling examples and best practices. |
0 commit comments