공부/App
[Flutter] 위치 정보 권한 체크 및 좌표 전송 (WebView & GPS & SpringBoot)
골드곽
2024. 9. 28. 14:10
반응형
//Flutter
//main.dart
import 'package:geolocator/geolocator.dart';
import 'package:permission_handler/permission_handler.dart';
void main() async{
WidgetsFlutterBinding.ensureInitialized();
await _handleLocationPermission(); // 어플 켜지면 바로 실행
}
Future<void> _handleLocationPermission() async {
var status = await Permission.location.status;
if (!status.isGranted) {
status = await Permission.location.request();
}
if (status.isGranted) {
print('위치 권한이 허용되었습니다.');
} else if (status.isDenied) {
print('위치 권한이 거부되었습니다.');
} else if (status.isPermanentlyDenied) {
openAppSettings();
}
}
//home_screen.dart (webview영역
LocationPermission permission = await Geolocator.checkPermission();
if (permission == LocationPermission.denied) {
permission = await Geolocator.requestPermission();
}
Position position = await Geolocator.getCurrentPosition(
desiredAccuracy: LocationAccuracy.high);
var data = {
'lat': position.latitude.toString(),
'lon': position.longitude.toString(),
}
print(data);
var response = await http.post(
Uri.parse(springBootApiUrl), //SpringBoot PostMapping uri 포함해서 보내면됌
headers: <String, String>{
'Content-Type': 'application/json; charset=UTF-8',
},
body: jsonEncode(datas),
);
반응형