【发布时间】:2019-06-23 20:08:20
【问题描述】:
我正在使用谷歌地图插件进行颤振:https://pub.dartlang.org/packages/google_maps_flutter
对于 Android,应用程序在物理设备和模拟器上显示地图和制造商,但在 iPhone 的模拟器上,我只能看到灰屏上的标记。
我正在尝试使用 API 中的不同密钥,但似乎没有一个可以工作。
这是 iOS 的代码(我找不到 AppDelegate.m,所以我添加到 AppDelegate.switf):
import UIKit
import Flutter
import GoogleMaps
@UIApplicationMain
@objc class AppDelegate: FlutterAppDelegate {
override func application(
_ application: UIApplication,
didFinishLaunchingWithOptions launchOptions: [UIApplicationLaunchOptionsKey: Any]?
) -> Bool {
GeneratedPluginRegistrant.register(with: self)
GMSServices.provideAPIKey("MY_KEY") // Add this line!
return super.application(application, didFinishLaunchingWithOptions: launchOptions)
}
}
在 Info.plist 中:
<key>io.flutter.embedded_views_preview</key>
<string>YES</string>
以及 Flutter 小部件代码:
import 'package:flutter/material.dart';
import 'package:google_maps_flutter/google_maps_flutter.dart';
import 'package:father_home_flutter/model/constants.dart';
import 'package:father_home_flutter/model/grown_group_list.dart';
import 'package:father_home_flutter/model/grown_group.dart';
import 'package:father_home_flutter/model/list_church_data.dart';
import 'package:father_home_flutter/model/church_data.dart';
class MapScreen extends StatefulWidget {
@override
State<StatefulWidget> createState() => new _MapScreenState();
}
class _MapScreenState extends State<MapScreen> {
final List<GrownGroup> listGroups = GrownGroupList.getGrownList();
final List<ChurchData> listChurch = ListChurchData.getListChurch();
GoogleMapController mapController;
final LatLng _center = const LatLng(55.751244, 37.618423);
void _onMapCreated(GoogleMapController controller) {
mapController = controller;
//shows group list on a red marker
for (int i = 0; i < listGroups.length; i++) {
mapController.addMarker(MarkerOptions(
position: listGroups[i].latLng,
infoWindowText: InfoWindowText(
listGroups[i].name + " " + listGroups[i].hour,
listGroups[i].phoneNumber)));
}
//shows church on a blue marker
for (int i = 0; i < listChurch.length; i++) {
mapController.addMarker(MarkerOptions(
icon: BitmapDescriptor.defaultMarkerWithHue(BitmapDescriptor.hueBlue),
position: listChurch[i].latLng,
infoWindowText:
InfoWindowText(listChurch[i].name, listChurch[i].schedule)));
}
}
@override
Widget build(BuildContext context) {
return Scaffold(
appBar: AppBar(
title: Text(
'Найти нас',
style: Constants.myTextStyleAppBar,
),
elevation: Constants.myElevationAppBar,
backgroundColor: Constants.myAppBarColor,
iconTheme: Constants.myIconThemeDataAppBar,
),
body: SafeArea(
child: GoogleMap(
onMapCreated: _onMapCreated,
)),
);
}
}
任何人都可以帮助我或解释为什么这在 iOS 模拟器上不起作用?
【问题讨论】:
标签: ios google-maps flutter