簡體   English   中英

Ionic應用程序在安裝時不要求訪問位置的權限

[英]Ionic app doesn't ask permission to access location while installing

我已按照以下步驟創建了一個應用程序:

ionic start ionic-maps blank
cd ionic-maps
ionic setup sass
ionic io init
ionic platform add android
bower install ngCordova

在index.html中添加了以下幾行:

<script src="lib/ngCordova/dist/ng-cordova.js"></script>
<script src="cordova.js"></script>

將app.js更改為包含ngCordova:

angular.module('starter', ['ionic', 'starter.controllers', 'ngCordova'])

安裝了地理位置插件:

cordova plugin add cordova-plugin-geolocation

app.js:

.state('app.location', {
  url: '/location',
  views: {
    'menuContent': {
      templateUrl: 'templates/location.html',
      controller: 'LocationCtrl'
    }
  }
})

location.html:

<ion-view view-title="Search">
  <ion-content>
    <h1>Location: {{location}}</h1>
  </ion-content>
</ion-view>

controllers.js:

.controller('LocationCtrl', function($scope, $state, $cordovaGeolocation) {
  $scope.location = 'Waiting';

  var options = {timeout: 10000, enableHighAccuracy: true};
  $cordovaGeolocation.getCurrentPosition(options).then(function(position) {
    var lat = position.coords.latitude;
    var lng = position.coords.longitude;
    console.log(lat, lng);
    $scope.location = lat + ' ' + lng;
  }, function(error) {
    console.log('Could not get location: ', error);
    $scope.location = 'Could not get location: ' + error + ' :: ' + JSON.stringify(error);
  });
})

如果我在手機的瀏覽器中打開/ location端點(使用ionic serve ),則可以正確顯示當前位置。 到目前為止,一切正常。

/platforms/android/AndroidManifest.xml中包含以下幾行:

<uses-permission android:name="android.permission.ACCESS_COARSE_LOCATION" />
<uses-permission android:name="android.permission.ACCESS_FINE_LOCATION" />

我正在使用使用ionic package build android的新雲包構建器來構建應用程序。 ionic package list顯示構建成功。

我希望從apk安裝該應用時會要求我提供位置許可。 但是我只要求full network access 在訪問/locations屏幕時,出現錯誤[object PositionError json.stringify(error){}Object.keys(error).length0

使用navigator.geolocation.getCurrentPosition代替$cordovaGeolocation.getCurrentPosition沒有幫助。

alert(error.code)2alert(error.message)application does not have sufficient geolocation permisions.

PS:我已經確保GPS已啟用,並且可以在其他應用程序上使用。

運行帶有--save選項的cordova plugin add cordova-plugin-geolocation ,即cordova plugin add cordova-plugin-geolocation --save以便將該插件添加到config.xml

Alt:在package.json "cordovaPlugins"中添加"cordova-plugin-geolocation"也可以解決該問題,但已被棄用。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM