当滚动到谷歌地图时,离子Android应用程序崩溃

时间:2015-08-25 13:11:36

标签: android google-maps ionic angular-google-maps

我有一个非常简单的页面与离子卡和下面的卡我有谷歌地图:

private void OnDataContextChanged(object sender, DependencyPropertyChangedEventArgs e)
{
    IRaiseStartCellEditEvent context = DataContext as IRaiseStartCellEditEvent;
    if (context != null)
    {
        context.StartCellEdit += (o, args) =>
        {
            //Get the cell from first row
            var cell = DataGrid.GetCell(0, 2);
            //Focus on the cell for editing
            cell.Focus();
            //Start editing the cell
            DataGrid.BeginEdit();
            //Get the editing textbox
            var tbEditor = Extensions.GetVisualChild<TextBox>(cell);
            //Force the keyboard focus
            if (tbEditor != null)
            {
                Keyboard.Focus(tbEditor);
                tbEditor.SelectAll();
            }
        };
    }
}

在我的style.css中我有这样的地图配置大小:

<ui-gmap-google-map center='map.center' zoom='map.zoom' dragging='false' options="map.options" scroll="false"></ui-gmap-google-map>

在我的控制器中,我有以下代码来启动地图:

.angular-google-map-container { height: 400px; }

在IOS上一切都很棒。 Chrome浏览器也是如此。但是,当我在Android上运行应用程序时,它“不幸地停止”。特别是如果我在加载页面上的所有数据之前快速滚动。

不确定这种行为如何稳定似乎是谷歌地图+离子性能问题。

解决此问题的任何帮助都会很棒。

在adb logcat中我发现了以下内容:

 uiGmapGoogleMapApi.then(function(maps) {
    $scope.map = { center: { latitude: $scope.lat,longitude: $scope.lng },
      zoom:15,
      options: {
        zoomControl: true,
        maxZoom:15,
        minZoom:10,
        draggable: false,
        rotateControl: false,
        scrollwheel: false,
        streetViewControl: false,
        disableDefaultUI: true,
        mapTypeId:google.maps.MapTypeId.ROADMAP
      }
    };
  });

1 个答案:

答案 0 :(得分:2)

将这个用于离子地图 效果很好!

https://github.com/allenhwkim/angularjs-google-maps

我完全删除了

<script src='lodash.min.js'></script> 
and 
<script src='angular-google-maps.min.js'></script>

删除了地图的html标记:

<ui-gmap-google-map center='map.center' zoom='map.zoom' dragging='false' options="map.options" scroll="false"></ui-gmap-google-map>

而是使用ngMap。用法很简单。

  1. 加载js文件:

    <script src="http://maps.google.com/maps/api/js"></script>
    <script src="http://rawgit.com/allenhwkim/angularjs-google-maps/master/build/scripts/ng-map.min.js"></script>
    
  2. 将ngMap添加到您的应用中:

    var myApp = angular.module('myApp', ['ngMap']);
    
  3. 将地图标记添加到页面中(例如):

    <map center="41,-87" zoom="3"></map>
    
  4. 到目前为止,已经在3个不同的Android设备上进行了测试,每个设备上有10-15个项目,行为稳定,并且还有很好的延迟加载功能!