NativeMethods
- React Native kursu
- İleri seviye
- Ders 68/83
- 5 dk
NativeMethods ile native çağrı öğrenirsin.
NativeMethods
NativeMethods, native modüllerdeki işlevleri çağırmanın standart yoludur. Bir native modülün method'ları, JS tarafında sıradan işlev gibi görünür. Örnek: NativeModules.Battery.getLevel() bir promise döner; await ile pil seviyesi alınır.
Çağrı sırasında parametreler JS'ten native'e köprü ile iletilir. Tip dönüşümü otomatik yapılır: JS sayısı native sayıya, JS dizesi native dizeye çevrilir. Ancak karmaşık nesneler her zaman desteklenmez; bu yüzden parametreler basit tutulur.
Promise döner
Native method çağrıları genellikle bir Promise döner. Bu yüzden çağrı await ile beklenir. Örnek: const level = await NativeModules.Battery.getLevel(). level, pil yüzdesini taşır.
Native methodu senkron yapmak da mümkündür ama önerilmez; çünkü UI iş parçacığını bloklamak animasyonları bozar. Asenkron kalıp, hem UI akıcılığını korur hem de hata yönetimini kolaylaştırır. try/catch ile hatalar yakalanır.
Uygulama Battery seviyesi oku
getBatteryLevel işlevini tamamla. NativeModules'ü react-native'dan içe aktar. const level = await NativeModules.Battery.getLevel() ile seviyeyi oku ve döndür.
Başlangıç kodu
import { NativeModules } from 'react-native';
export async function getBatteryLevel() {
// Battery modülünden seviyeyi oku
}Örnek çözüm
import { NativeModules } from 'react-native';
export async function getBatteryLevel() {
const level = await NativeModules.Battery.getLevel();
return level;
}Soru ve cevaplar
Dersin sorularını cevaplarıyla birlikte inceleyebilirsin. Kendini denemek istersen dersi interaktif olarak çöz.
1 NativeMethods parçalarını eşle
| Kavram | Anlamı |
|---|---|
NativeModules.Battery |
Modül adı |
.getLevel() |
Method çağrısı |
await |
Promise bekler |
promise |
Asenkron sonuç |
2 Native method neden promise döner?
- Çünkü UI iş parçacığında çalışır, anında dönemeyebilir
- Çünkü promise kullanmak zorunludur
- Çünkü modül asenkron değildir
- Çünkü JS senkron çalışamaz Doğru cevap
Açıklama: Native method UI iş parçacığında çalışır; bu yüzden promise döner.
3 await ile bekle
const level = ____ NativeModules.Battery.getLevel();
const level = await NativeModules.Battery.getLevel();
Açıklama: await promise sonuçunu bekler.