-
Notifications
You must be signed in to change notification settings - Fork 0
/
KullaniciIzinleri.js
62 lines (52 loc) · 2.26 KB
/
KullaniciIzinleri.js
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
import React from 'react';
import { View, Alert, Button } from 'react-native';
// Expo kütüphanesinde bulunan 'Permissions' modülünü import etmemiz gerekiyor.
import { Permissions } from 'expo';
export default class KullaniciIzinleri extends React.Component {
constructor(props){
super(props);
this._izinIste = this._izinIste.bind(this);
this._izinKontrolEt = this._izinKontrolEt.bind(this);
}
// 'Permissions' modülünün fonksiyonları asenkron çalıştığı için yazacağımız fonksiyonlarda 'async/await' yapısını kullanacağız.
_izinIste = async () => {
// 'CAMERA_ROLL' yani galeriye erişim izni istiyoruz ve oradan gelecek cevabı 'status' değişkenine atıyoruz.
// Eğer izin verilirse 'status' değişkenimiz 'granted' değerini alıyor ve fonksiyonumuz 'true' dönüyor.
// İzin verilmezse bir uyarı mesajı gösteriyoruz ve fonksiyonumuz 'false' dönüyor.
// NOT : Eğer izin verilmezse tekrardan izin isteme işlemi yapılamaz. Bir kez izin verilmedikten sonra fonksiyon tekrar çağırılırsa otomatik olarak 'false' dönecektir.
const { status } = await Permissions.askAsync(Permissions.CAMERA_ROLL);
if (status === 'granted')
return true;
else {
Alert.alert('Galeriye erişim izni verilmedi!');
return false;
}
}
_izinKontrolEt = async () => {
// Daha önce galeriye erişim izni verilip verilmediğini kontrol ediyoruz.
// Eğer izin verilmişse 'status' değişkenimiz 'granted' değerini alıyor ve fonksiyonumuz 'true' dönüyor.
// Daha önce izin verilmemişse veya hiç izin isteme işlemi yapılmamışsa uyarı mesajı gösteriyoruz ve fonksiyonumuz 'false' dönüyor.
const { status } = await Permissions.getAsync(Permissions.CAMERA_ROLL);
if (status === 'granted') {
console.log(status);
return true;
} else {
Alert.alert('Galeriye erişim izni verilmemiş!')
return false;
}
}
render() {
return (
<View style={{ flex: 1, justifyContent: 'center', alignItems: 'center' }}>
<Button
title = 'İzin iste'
onPress = {this._izinIste}
/>
<Button
title = 'İzin kontrol et'
onPress = {this._izinKontrolEt}
/>
</View>
);
}
}