[英]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).length
為0
。
使用navigator.geolocation.getCurrentPosition
代替$cordovaGeolocation.getCurrentPosition
沒有幫助。
alert(error.code)
為2
, alert(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.