2016-02-03 3 views
4

Я создаю приложение Ionic, которое имеет геолокацию (Google Api), но это верно, в верхнем правом углу кнопка, которую я хочу сделать, чтобы сделать снимок экрана и автоматически сделать popover с параметрами для отправки этого снимка экрана по электронной почте, viber ..., но у меня нет идеи, как сделать этот скриншот, я googled и googled без везения, пожалуйста, помогите.Принимая скриншот Ionic framework

app.controller('MapCtrl', function($scope, $cordovaGeolocation, $ionicLoading, $ionicPlatform) { 

    $ionicPlatform.ready(function() { 

     $ionicLoading.show({ 
      template: '<ion-spinner icon="bubbles"></ion-spinner><br/>Acquiring location!' 
     }); 

     var posOptions = { 
      enableHighAccuracy: true, 
      timeout: 20000, 
      maximumAge: 0 
     }; 
     $cordovaGeolocation.getCurrentPosition(posOptions).then(function (position) { 
      var lat = position.coords.latitude; 
      var long = position.coords.longitude; 

      var myLatlng = new google.maps.LatLng(lat, long); 

      var mapOptions = { 
       center: myLatlng, 
       zoom: 16, 
       mapTypeId: google.maps.MapTypeId.ROADMAP 
      };   

      var map = new google.maps.Map(document.getElementById("map"), mapOptions);   

      $scope.map = map; 
      $ionicLoading.hide(); 

      var marker = new google.maps.Marker({ 
      position: myLatlng, 
      map: map, 
      title: 'Lokacija' 
     }); 


     }, function(err) { 
      $ionicLoading.hide(); 
      console.log(err); 
     }); 
    });    
}); 

Preview

ответ

0

Два варианта, насколько я могу сказать:

  • Используйте сторонний Кордова плагин, такие как https://github.com/gitawego/cordova-screenshot - это, скорее всего, включают в себя элементы пользовательского интерфейса приложения слишком , хотя, возможно, это не то, что вы хотите.
  • Возможно, лучшей идеей было бы использовать Google Static Maps API - вы можете передать текущие параметры с вашей динамической карты на нее, и она вернет версию изображения.
0

Это поможет вам начать: How to take a screen shot in ionic

После того, как вы получили изображение с помощью плагина, вы можете просто использовать сервис поповера Ионного, чтобы отобразить его там.

+0

спасибо, что получил это – Mark

+0

на самом деле я снова застрял, не знаю, как извлечь изображение из этой службы с помощью контроллера MapCtrl и присвоить его переменной – Mark

+0

Извините за долгое время ожидания, был в выходные. Если я вижу это правильно, служба должна вернуть его вам прямо, так что вы можете, например, создать тег и в качестве исходного атрибута вы можете просто взять «результат», который вы получаете при вызове службы. Как вы можете видеть в сервисе, он проверяет путь к обещанию, а затем возвращает обещание, поэтому в результате (результат) будет ваш файл Путь с сделанной фотографии – Noshii