Proje: Okul B2B App · Hub: Okul B2B App — Conventions
İzin Yönetimi
utils/PermissionManager.ts — Tüm sistem izinleri tek yerden yönetilir.
İzin Türleri (PermissionType)
CAMERA // Kamera — galeri fotoğraf çekimi
MEDIA_LIBRARY // Fotoğraf kitaplığı — galeri yükleme
LOCATION // Konum — etkinlik paylaşımı (opsiyonel)
NOTIFICATIONS // Bildirimler — push notifications
MICROPHONE // Mikrofon — video kayıt (opsiyonel)Kullanım
import { permissionManager, PermissionType } from '@/utils/PermissionManager';
const result = await permissionManager.requestPermission(PermissionType.CAMERA);
// → { status: 'granted' | 'denied' | 'blocked', canAskAgain: boolean }
const status = await permissionManager.checkPermission(PermissionType.MEDIA_LIBRARY);Reddedilme Durumu
blocked (kalıcı red) durumunda kullanıcıya platform-spesifik ayarlar yönlendirmesi gösterilir:
- iOS:
"Ayarlar > Gizlilik ve Güvenlik > Kamera > Okulcomtr'dan verebilirsiniz." - Android:
"Ayarlar > Uygulamalar > Okulcomtr > İzinler'den verebilirsiniz."
Linking.openSettings() ile direkt ayarlar açılır.
usePermissions Hook
import { usePermissions } from '@/hooks/usePermissions';
const { requestCameraPermission, requestMediaLibraryPermission } = usePermissions();Related
- medya-yukleme-akisi — kamera/galeri izni upload öncesi
- galeri-yonetimi — galeri fotoğraf izinleri