CodeBlanks Logo Icon CodeBlanks

expo-permissions

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

App.js
// requestCameraPermission fonksiyonunu yaz
// Permissions.askAsync ile CAMERA iznini iste; status döndür

Örnek çözüm

App.js
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

Soru
import * as ____ from 'expo-permissions';
Cevap
import * as Permissions from 'expo-permissions';

Açıklama: Permissions expo-permissions'tan içe aktarılır.

3 askAsync ne döndürür?

App.js
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.

Orta seviye bölümündeki tüm dersler