본문 바로가기
Flutter/Flutter FAQ

Flutter 플러터를 사용하여 가능한 경우 Google Maps 앱을 여십시오., Open Google Maps app if available with flutter

by 베타코드 2023. 10. 3.
반응형

질문


Google Maps 앱이 iOS에 설치되어 있는지 감지하고, 설치되어 있다면 실행하고, 그렇지 않으면 Apple Maps를 실행하려고 합니다. 지금까지 한 작업은 다음과 같습니다. 그러나 Google Maps가 설치된 폰에서는 감지되지 않고 적절하게 실행되지 않습니다.

어떤 아이디어가 있나요?

import 'package:url_launcher/url_launcher.dart';

_launchMaps() async {
  String googleUrl =
    'comgooglemaps://?center=${trip.origLocationObj.lat},${trip.origLocationObj.lon}';
  String appleUrl =
    'https://maps.apple.com/?sll=${trip.origLocationObj.lat},${trip.origLocationObj.lon}';
  if (await canLaunch("comgooglemaps://")) {
    print('launching com googleUrl');
    await launch(googleUrl);
  } else if (await canLaunch(appleUrl)) {
    print('launching apple url');
    await launch(appleUrl);
  } else {
    throw 'Could not launch url';
  }
}

URL 스키마는 여기에서 가져왔습니다: How would I be able to open google maps when I press a button in my app?


답변


패키지 url_launcher를 설치하고 아래의 코드를 사용할 수 있습니다:

import 'package:url_launcher/url_launcher.dart';

class MapUtils {

  MapUtils._();

  static Future<void> openMap(double latitude, double longitude) async {
    String googleUrl = 'https://www.google.com/maps/search/?api=1&query=$latitude,$longitude';
    if (await canLaunch(googleUrl)) {
      await launch(googleUrl);
    } else {
      throw '지도를 열 수 없습니다.';
    }
  }
}

이제 앱에서 구글 지도를 열기 위해 이 메소드를 호출할 수 있습니다:

MapUtils.openMap(-3.823216,-38.481700);
반응형

댓글