Ionic with Geolocation 警报:'mySecondApp.app/www/index.html' 想使用您当前的位置

Ionic with Geolocation alerts: 'mySecondApp.app/www/index.html' Would like to use your current location

我知道 there's a similar post 这件事,但所有者只是通过重新安装插件使它工作,这对我不起作用。 这是我所做的:

$ 离子启动 mySecondApp 选项卡

$ cd mySecondApp

$离子平台添加ios

$ cordova插件添加org.apache.cordova.geolocation

$vimwww/js/controller.js

**在 DashCtrl 中插入此代码:**

.controller('DashCtrl', function($scope) {

  var onSuccess = function(position) {
    var lat       = position.coords.latitude;
    var lng       = position.coords.longitude;

   alert(lat +"\n" + lng);
  };
  // onError Callback receives a PositionError object
  //
  function onError(error) {
      alert('code: '    + error.code    + '\n' +
            'message: ' + error.message + '\n');
  }
  navigator.geolocation.getCurrentPosition(onSuccess, onError)

})

保存

$ 离子构建 ios

$ 离子模拟 ios

首先你会看到我想说你的应用想要使用你的位置的正确消息,很好,然后你会看到这个弹出窗口:

知道如何解决这个问题吗?我试过 ngcordova 也没有用

模拟器上也是如此

如果你想使用离子视图,请点击这里的二维码

或者只下载项目:here

刚刚找到“解决方案”(更像是一种解决方法)

答案来自 Whosebug:Location permission alert on iPhone with PhoneGap

You need to do the geolocation after the device is ready. The following Jquery code, for example, will geolocate without that nasty alert:

$(function(){
  document.addEventListener("deviceready", onDeviceReady, false);
})

function onDeviceReady() {
  navigator.geolocation.getCurrentPosition(onSuccess, onError);     
}

function onSuccess(position) {
  // your callback here 
}

function onError(error) { 
  // your callback here
}

在 ionic 中你会把它放在 insdie $ionicPlatform.ready(function() {