Compartir ubicación actual Aplicación Flutter | por Salman Aziz | Mayo 2021
Aprenda cómo obtener la posición flagrante en medio de la confusión y el intercambio
Las aplicaciones móviles basadas en la ubicación se utilizan ampliamente.Su realización aleteo Indoloro para desarrolladores.
Aprenderemos cómo obtener la ubicación flagrante del becario y compartirla a través del medio de dispositivo móvil compartido predeterminado. Dividamos este proceso en varias partes más pequeñas.
1- grupo
2-Implementación de Google Map
3 posiciones
4- compartir
Ajustes:
paso 1: Agregue el atlas de Google, la ubicación y las dependencias compartidas en el archivo pubspec.yml
google_maps_flutter: ^2.0.5
share: ^2.0.1
location: ^4.1.1
Para Google Maps y Location, necesita realizar alguna configuración adicional en los proyectos de Android e iOS
Google Plano de la configuración de Android
1- grupo minSdkVersion
en android/app/build.gradle
:
android
defaultConfig
minSdkVersion 20
2- Especifique su esencia de API en el manifiesto de la aplicación android / app / src / main / AndroidManifest.xml
<manifest ...
<application ...
<meta-data android:name="com.google.android.geo.API_KEY"
android:value="YOUR KEY HERE"/>
Configuración de Google Map iOS
1- Especifique su esencia API en el representante de la aplicación ios / Runner / AppDelegate.m
#include "AppDelegate.h"
#include "GeneratedPluginRegistrant.h"
#import "GoogleMaps/GoogleMaps.h"@implementation AppDelegate
- (BOOL)application:(UIApplication *)application
didFinishLaunchingWithOptions:(NSDictionary *)launchOptions
[GMSServices provideAPIKey:@"YOUR KEY HERE"];
[GeneratedPluginRegistrant registerWithRegistry:self];
return [super application:application didFinishLaunchingWithOptions:launchOptions];
@end
O en su código Swift, especifique su esencia API en la aplicación delegada ios / Runner / AppDelegate.swift
import UIKit
import Flutter
import GoogleMaps@UIApplicationMain
@objc class AppDelegate: FlutterAppDelegate
override func application(
_ application: UIApplication,
didFinishLaunchingWithOptions launchOptions: [UIApplication.LaunchOptionsKey: Any]?
) -> Bool
GMSServices.provideAPIKey("YOUR KEY HERE")
GeneratedPluginRegistrant.register(with: self)
return super.application(application, didFinishLaunchingWithOptions: launchOptions)
Configuración de ubicación de iOS
Debe asociar este permiso en Info.plist:
NSLocationWhenInUseUsageDescription
NSLocationAlwaysUsageDescription
Los servicios de ubicación no requieren ninguna configuración en Android
Compartir no requiere ninguna configuración adicional para iOS y Android
Ahora hagamos un poco de trabajo
Paso 2:
import 'dart:async';import 'package:flutter/material.dart';
import 'package:google_maps_flutter/google_maps_flutter.dart';
void main() => runApp(MyApp());
class MyApp extends StatelessWidget
@override
Widget build(BuildContext context)
return MaterialApp(
title: 'Flutter Google Maps Demo',
home: MapSample(),
);
class MapSample extends StatefulWidget
@override
State<MapSample> createState() => MapSampleState();
class MapSampleState extends State<MapSample>
Completer<GoogleMapController> _controller = Completer();
static final CameraPosition _kGooglePlex = CameraPosition(
target: LatLng(37.42796133580664, -122.085749655962),
teleobjetivo: 14.4746,
);
@override
Widget build(BuildContext context)
return new Scaffold(
body: GoogleMap(
mapType: MapType.hybrid,
initialCameraPosition: _kGooglePlex,
onMapCreated: (GoogleMapController controller)
_controller.complete(controller);
,
),
);
necesitas GoogleMapController propósito _Controlador Anime las coordenadas de posición cambiadas.
Verás lo casquivana que es implementar GoogleMap en Flutter.
Ahora comience a moverse para obtener la ubicación flagrante del becario
tercer paso:
import 'package:location/location.dart';Location location = new Location();bool _serviceEnabled;
PermissionStatus _permissionGranted;
LocationData _locationData;_serviceEnabled = await location.serviceEnabled();
if (!_serviceEnabled)
_serviceEnabled = await location.requestService();
if (!_serviceEnabled)
return;_permissionGranted = await location.hasPermission();
if (_permissionGranted == PermissionStatus.denied)
_permissionGranted = await location.requestPermission();
if (_permissionGranted != PermissionStatus.granted)
return;_locationData = await location.getLocation();
el cuarto paso:
import 'package:share/share.dart';Share.share(
'Hello find me here https://www.google.com/maps/@$position.latitude,$position.longitude,15z ',
subject: 'I am here buddy');
Cargar ahora
Hecho todo
Este es el enlace de recompra del esquema.