Ionic 2:在原生 cordova-plugin-googlemaps 中使用 HtmlInfoWindow

Ionic 2: use HtmlInfoWindow in native cordova-plugin-googlemaps

我在我的应用程序中使用 cordova-plugin-googlemaps。 https://ionicframework.com/docs/native/google-maps/

我的代码:

  loadMap() {

    var element: HTMLElement = document.getElementById('map');
    var map: GoogleMap = this.googleMaps.create(element);
    map.one(GoogleMapsEvent.MAP_READY).then(() => {

      var ionic: LatLng = new LatLng(50.5279314,30.2317489);

      var position: CameraPosition = {
        target: ionic,
        zoom: 10,
      };
      map.moveCamera(position);

      var htmlInfoWindow = new HtmlInfoWindow();
      htmlInfoWindow.setContent('<div>Test</div>');

      map.addMarker({
        position: new LatLng(50.5279314,30.2317489),
      }).then((marker: Marker) => {
        marker.on(GoogleMapsEvent.MARKER_CLICK).subscribe(() => {
          htmlInfoWindow.open(marker);
        });
      });

    });

  }

当我尝试打开 HtmlInfoWindow 时,出现错误。请帮忙:

console.error: Unhandled Promise rejection: marker.bindTo is not a function. (In 'marker.bindTo("infoWindowAnchor", self)', 'marker.bindTo' is undefined) ; Zone: ; Task: null ; Value: [object Object] http://192.168.0.104:8102/plugins/cordova-plugin-googlemaps/www/HtmlInfoWindow.js:233:22 fromLatLngToPoint@http://192.168.0.104:8102/plugins/cordova-plugin-googlemaps/www/Map.js:620:26 open@http://192.168.0.104:8102/plugins/cordova-plugin-googlemaps/www/HtmlInfoWindow.js:229:26 http://192.168.0.104:8102/build/vendor.js:56416:25 t@http://192.168.0.104:8102/build/polyfills.js:3:15045 tryNativePromise@http://192.168.0.104:8102/build/vendor.js:56415:31 http://192.168.0.104:8102/build/main.js:85:40 __tryOrUnsub@http://192.168.0.104:8102/build/vendor.js:31152:20 next@http://192.168.0.104:8102/build/vendor.js:31099:34 _next@http://192.168.0.104:8102/build/vendor.js:31039:30 next@http://192.168.0.104:8102/build/vendor.js:31003:23 listener@http://192.168.0.104:8102/plugins/cordova-plugin-googlemaps/www/BaseClass.js:60:21 dispatchEvent@[native code] trigger@http://192.168.0.104:8102/plugins/cordova-plugin-googlemaps/www/BaseClass.js:43:27 _onMarkerEvent@http://192.168.0.104:8102/plugins/cordova-plugin-googlemaps/www/Map.js:982:23 nativeCallback@http://192.168.0.104:8102/plugins/cordova-plugin-googlemaps/www/googlemaps-cdv-plugin.js:313:32 nativeCallback@[native code] dispatchEvent@[native code] fireDocumentEvent@http://192.168.0.104:8102/cordova.js:235:35 global code@http://192.168.0.104:8102/:1:37

ionic 团队好像忘了实现 BaseClass 的 bindTo 方法。

我发送了拉取请求。应该可以。

https://github.com/ionic-team/ionic-native/pull/1815