ခဏလေး ဒီလိုပဲ စဉ်းစားကြည့်
Device feature (camera, location, contacts) ကို access လုပ်ခင် user ဆီက permission တောင်းရပါတယ် (iOS/Android OS-level requirement) — expo-camera, expo-location ကဲ့သို့ package တွေက requestPermissionsAsync() function ပေးပြီး, user 'Allow'/'Deny' ရွေးချက်ကို handle လုပ်ရပါတယ်။ Permission ကို deny လုပ်ခံရရင် feature ကို gracefully disable/explain လုပ်ရပါတယ် — app crash မဖြစ်စေရပါဘူး။
လက်တွေ့ scenario နဲ့ ချိတ်ကြည့်မယ်
expo-location ကို install ပြီး Location.requestForegroundPermissionsAsync() ခေါ်ရင် OS ရဲ့ native permission dialog ပေါ်လာပါလိမ့်မယ် — 'Allow' ရလို့မှ Location.getCurrentPositionAsync() နဲ့ GPS coordinate ကို ရယူနိုင်ပါတယ်။ Permission status ကို always check ပါ (granted/denied), status !== 'granted' ဖြစ်ရင် feature ကို ကန့်သတ်ဖို့ UI message ပြပါ။
Code နမူနာ
import * as Location from 'expo-location';
import { useState, useEffect } from 'react';
import { Text } from 'react-native';
function LocationScreen() {
const [location, setLocation] = useState(null);
const [errorMsg, setErrorMsg] = useState(null);
useEffect(() => {
(async () => {
const { status } = await Location.requestForegroundPermissionsAsync();
if (status !== 'granted') {
setErrorMsg('Location permission ကို ငြင်းပယ်ထားပါတယ်');
return;
}
const loc = await Location.getCurrentPositionAsync({});
setLocation(loc);
})();
}, []);
if (errorMsg) return <Text>{errorMsg}</Text>;
return <Text>{location ? JSON.stringify(location.coords) : 'Loading...'}</Text>;
}Permission dialog ပေါ်လာပြီး 'Allow' လုပ်ရင် device ရဲ့ GPS coordinate ကို screen ပေါ်မှာ ပြသမည်။၅ မိနစ် စမ်းကြည့်
expo-location ကို install ပြီး permission request + current location fetch flow ကို ကိုယ်တိုင် implement လုပ်ကြည့်ပါ (Expo Go app ပေါ်မှာ)။
သတိလေးတစ်ချက်
Location/camera data က sensitive personal information ဖြစ်ပါတယ် — ဘာအတွက်လိုအပ်တာလဲ user ကို ရှင်းရှင်းလင်းလင်း ပြောပြပြီးမှ permission တောင်းပါ, backend ကို ပို့ရင်လည်း Cybersecurity tutorial ရဲ့ encryption/HTTPS concept ကို လိုက်နာပါ။