expo-permissions
- React Native kursu
- Orta seviye
- Ders 107/116
- 5 dk
expo-permissions ile izin istemeyi öğrenirsin.
expo-permissions nedir?
expo-permissions, Expo'nun izin isteyen modülüdür. Permissions.askAsync(Permissions.CAMERA) ile bir izin ister; sonuç bir nesnedir ve status alanı içerir. status üç değer alır: 'granted', 'denied', 'undetermined'.
Kullanım: import * as Permissions from 'expo-permissions' ile içe aktarır, sonra await Permissions.askAsync(Permissions.CAMERA) ile istersin. askAsync bir promise döndürür; bu yüzden async/await ile çağrılır. getAsync ise sormadan mevcut durumu okur. İlk kez sorulduğunda sistem diyaloğu çıkar; sonraki çağrılar diyaloğu tekrar göstermez. Expo projelerinde bu modül varsayılan olarak bulunur.
askAsync
Permissions.askAsync(permissionType) bir izin ister. İlk çağrıda sistem diyaloğu gösterir; sonraki çağrılarda hatırlanan sonucu döndürür. Promise döndürür; await ile beklenir.
Dönen nesne { status, expires, permissions } biçimindedir. En sık kullanılan alan status'tür. Örnek: const { status } = await Permissions.askAsync(Permissions.CAMERA). status === 'granted' ise kamera açılabilir; değilse kullanıcı yönlendirilmeli. expires alanı iOS'ta iznin ne zaman sona ereceğini söyler; Android'de genelde 'never' olur. Bu ayrıntı çoğu durumda yoksayılabilir.
Uygulama requestCameraPermission yaz
Bir requestCameraPermission fonksiyonu yaz. async olsun. await ile Permissions.askAsync(Permissions.CAMERA) çağır; sonuçtan status al ve döndür.
Başlangıç kodu
// requestCameraPermission fonksiyonunu yaz
// Permissions.askAsync ile CAMERA iznini iste; status döndürÖrnek çözüm
async function requestCameraPermission() {
const { status } = await Permissions.askAsync(Permissions.CAMERA);
return status;
}Soru ve cevaplar
Dersin sorularını cevaplarıyla birlikte inceleyebilirsin. Kendini denemek istersen dersi interaktif olarak çöz.
1 Metodu rolüne eşle
| Kavram | Anlamı |
|---|---|
askAsync |
İzin ister |
getAsync |
Mevcut durumu okur |
status |
Sonuç alanı |
Permissions.CAMERA |
Kamera izni |
2 Permissions import
import * as ____ from 'expo-permissions';
import * as Permissions from 'expo-permissions';
Açıklama: Permissions expo-permissions'tan içe aktarılır.
3 askAsync ne döndürür?
const { status } = await Permissions.askAsync(Permissions.CAMERA);- Bir dize
- Bir sayı
- Bir nesne Doğru cevap
- Bir dizi
Açıklama: askAsync bir nesne döndürür; status alanı vardır.