Я пытаюсь интегрировать библиотеку карт Google с приложением для дротиков, которое я пытался создать, которое также использует web_ui, и все, что я получаю, - это множество очень неприятных ошибок. Я загрузил примеры из примера dart google maps на github, и они отлично работают.
Однако, когда я пытаюсь собрать его воедино в более «настоящем» приложении, ничего не получается. Вот ошибки, которые я получаю:
Breaking on exception: ReferenceError: ReceivePortSync is not defined
Uncaught ReferenceError: ReceivePortSync is not defined
ProxiedObjectTable (:54:21)
(:195:28)
(:567:3)
Breaking on exception: The null object does not have a method 'callSync'.
Exception: The null object does not have a method 'callSync'.
NoSuchMethodError : method not found: 'callSync'
Receiver: null
Arguments: [GrowableObjectArray len:0]
Object.noSuchMethod (dart:core-patch/object_patch.dart:20:25)
_enterScope (package:js/js.dart:756:35)
scoped (package:js/js.dart:745:26)
AlertDetailsComponent.renderMap (http://127.0.0.1:3030/Users/ao85407/Development/Dart/BDProjects/adminConsoleV2/web/out/AlertDetails.dart:381:14)
AlertDetailsComponent.loadAlertDetailsData (http://127.0.0.1:3030/Users/ao85407/Development/Dart/BDProjects/adminConsoleV2/web/out/AlertDetails.dart:321:25)
AlertsBodyComponent.viewAlertDetails (http://127.0.0.1:3030/Users/ao85407/Development/Dart/BDProjects/adminConsoleV2/web/out/AlertsBody.dart:232:36)
AlertsBodyComponent.created_autogenerated.<anonymous closure>.<anonymous closure> (http://127.0.0.1:3030/Users/ao85407/Development/Dart/BDProjects/adminConsoleV2/web/out/AlertsBody.dart:146:60)
Template.listen.<anonymous closure> (package:web_ui/templating.dart:426:53)
_enterScope (package:js/js.dart:756:35)
scoped (package:js/js.dart:745:26)
Exception: The null object does not have a method 'callSync'.
NoSuchMethodError : method not found: 'callSync'
Receiver: null
Arguments: [GrowableObjectArray len:0]
Object.noSuchMethod (dart:core-patch/object_patch.dart:20:25)
_enterScope (package:js/js.dart:756:35)
scoped (package:js/js.dart:745:26)
AlertDetailsComponent.renderMap (http://127.0.0.1:3030/Users/ao85407/Development/Dart/BDProjects/adminConsoleV2/web/out/AlertDetails.dart:381:14)
AlertDetailsComponent.loadAlertDetailsData (http://127.0.0.1:3030/Users/ao85407/Development/Dart/BDProjects/adminConsoleV2/web/out/AlertDetails.dart:321:25)
AlertsBodyComponent.viewAlertDetails (http://127.0.0.1:3030/Users/ao85407/Development/Dart/BDProjects/adminConsoleV2/web/out/AlertsBody.dart:232:36)
AlertsBodyComponent.created_autogenerated.<anonymous closure>.<anonymous closure> (http://127.0.0.1:3030/Users/ao85407/Development/Dart/BDProjects/adminConsoleV2/web/out/AlertsBody.dart:146:60)
Template.listen.<anonymous closure> (package:web_ui/templating.dart:426:53)
_enterScope (package:js/js.dart:756:35)
scoped (package:js/js.dart:745:26)
Failed to load resource: the server responded with a status of 404 (Not Found)
http://127.0.0.1:3030/Users/ao85407/Development/Dart/BDProjects/adminConsoleV2/web/out/js/jquery.js
Failed to load resource: the server responded with a status of 404 (Not Found)
http://127.0.0.1:3030/Users/ao85407/Development/Dart/BDProjects/adminConsoleV2/web/out/js/bootstrap.js
Что происходит в коде, так это то, что когда компонент визуализируется, я получаю дескриптор пользовательского объекта «Предупреждение» и использую его для построения карты с помощью этой функции:
Object renderMap(Alert alert)
{
final lat = double.parse(alert.latitude);
final lng = double.parse(alert.longitude);
final mapOptions = new MapOptions()
..zoom = 14
..center = new LatLng(lat, lng)
..mapTypeId = MapTypeId.ROADMAP;
final map = new GMap(query("#map-canvas"), mapOptions);
js.retain(map);
//clever troubleshooting/debugging methods
map.onZoomChanged.listen((ignored)
{
print ('zoom: ${map.zoom}');
});
return map;
}
Сбой происходит, когда я пытаюсь создать MapOptions, и ничего из того, что я пробовал, не работает. Я предполагаю, что это связано с жизненным циклом страницы и с загрузкой библиотек, поскольку я нахожусь на расстоянии нескольких страниц от основного метода моего файла дротика приложения.
Любые предложения были бы замечательными!
Спасибо!