如何向地图重定向离子添加后退按钮?

时间:2016-03-18 16:34:20

标签: javascript google-maps-api-3 ionic-framework

我正在运行一个离子谷歌地图应用程序。 我遇到的问题是右下角的谷歌条款和条件。我想显示条款和条件,但是当我运行应用程序并单击条款和条件时,会打开另一个窗口,从而使我的应用程序消失。

如何点击条款和条件,但将其置于框架内?

http://codepen.io/leetcat/pen/GZrLRN

index.html:

<html ng-app="ionic.example">
  <head>
    <meta charset="utf-8">
    <title>Map</title>
    <meta name="viewport" content="initial-scale=1, maximum-scale=1, user-scalable=no, width=device-width">

    <link href="//code.ionicframework.com/nightly/css/ionic.css" rel="stylesheet">
    <script src="//code.ionicframework.com/nightly/js/ionic.bundle.js"></script>

    <!-- google maps javascript -->
    <script src="//maps.googleapis.com/maps/api/js?key=AIzaSyB16sGmIekuGIvYOfNoW9T44377IU2d2Es&sensor=true"></script>

  </head>
  <body ng-controller="MapCtrl">
    <ion-header-bar class="bar-dark" >
      <h1 class="title">Map</h1>
    </ion-header-bar>
    <ion-content>
      <div id="map" data-tap-disabled="true"></div>
    </ion-content>
  </body>
</html>

app.js

angular.module('ionic.example', ['ionic'])    
    .controller('MapCtrl', function($scope, $ionicLoading, $compile) {
      function initialize() {
        var myLatlng = new google.maps.LatLng(43.07493,-89.381388);

        var mapOptions = {
          center: myLatlng,
          zoom: 16,
          mapTypeId: google.maps.MapTypeId.ROADMAP
        };
        var map = new google.maps.Map(document.getElementById("map"),
            mapOptions);          
        $scope.map = map;
      }
      google.maps.event.addDomListener(window, 'load', initialize);
    });

点击条款和条件后,系统会打开新页面。我希望它在一个框架中打开,所以我可以点击回来。在iOS应用程序中,无法单击返回。

1 个答案:

答案 0 :(得分:1)

将此功能添加到app.js文件中:

function changeTermsOfUseClick() {
  var a = document.getElementsByClassName('gmnoprint').item(1).lastChild.lastChild;
  a.setAttribute('href',"#/html/redirect/here");
  a.removeAttribute('target');
};

并将此行添加到初始化函数中:

$scope.initialize = function() {
  google.maps.event.addListenerOnce($scope.map, 'tilesloaded', changeTermsOfUseClick);
};

加载地图后,会调用changeTermsOfUseClick(),并且我们想要更改其href的元素存在,因此您可以将其指向您想要的应用中的任何位置,更改此#/html/redirect/here

确保在没有显示的情况下也不删除它,这是非法的。