Özet - İzinler
- React Native kursu
- Orta seviye
- Ders 111/116
- 5 dk
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
// usePermissions hook'unu yaz
// permissionType parametresi al; useState ile status tut; useEffect içinde izin iste; status döndürÖrnek çözüm
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?
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
import * as Permissions from '____';
import * as Permissions from 'expo-permissions';
Açıklama: expo-permissions modülünden içe aktarılır.