CodeBlanks Logo Icon CodeBlanks

Özet - İzinler

expo-permissions ve kamera/konum izinlerini birleştirerek bir izin akışı yazarsın.

Özet - İzinler

Bu grupta izinlerin temelini öğrendin. İzin, hassas kaynağa erişim için sistem onay kapısıdır. expo-permissions, Expo'nun izin modülüdür; askAsync ile istenir.

Kamera izni Permissions.CAMERA, konum izni Permissions.LOCATION, bildirim izni Permissions.NOTIFICATIONS ile istenir. Her birinde status'ü kontrol edip akışı yönetirsin: 'granted' ise devam et, değilse kullanıcıyı yönlendir. Bu beş kavram birlikte, gerçek bir mobil uygulamanın izin akışını oluşturur. Kullanıcı güvenini korumak için izni gerektiği anda istemek esastır.

Uygulama usePermissions hook'u

Bir usePermissions hook'u yaz. permissionType parametresi alsın. useState('undetermined') ile status tut. useEffect içinde Permissions.askAsync(permissionType) çağır; .then ile setStatus yap. status'ü döndür.

Başlangıç kodu

App.js
// usePermissions hook'unu yaz
// permissionType parametresi al; useState ile status tut; useEffect içinde izin iste; status döndür

Örnek çözüm

App.js
import { useState, useEffect } from "react";
import * as Permissions from "expo-permissions";

export function usePermissions(permissionType) {
  const [status, setStatus] = useState("undetermined");
  useEffect(() => {
    Permissions.askAsync(permissionType).then(({ status }) => {
      setStatus(status);
    });
  }, [permissionType]);
  return status;
}

Soru ve cevaplar

Dersin sorularını cevaplarıyla birlikte inceleyebilirsin. Kendini denemek istersen dersi interaktif olarak çöz.

1 Konum verisi almak için hangi izin?

App.js
Permissions.???
  • Kamera
  • Bildirim
  • Konum Doğru cevap
  • Mikrofon

Açıklama: Konum verisi için konum izni gerekir.

2 İzni kaynağına eşle

Kavram Anlamı
Permissions.CAMERA Kamera
Permissions.LOCATION GPS
Permissions.NOTIFICATIONS Push bildirim
askAsync İzin ister

3 expo-permissions import

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

Açıklama: expo-permissions modülünden içe aktarılır.

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