【问题标题】:Ionic with Geolocation alerts: 'mySecondApp.app/www/index.html' Would like to use your current location带有地理位置警报的离子:“mySecondApp.app/www/index.html”想使用您当前的位置
【发布时间】:2015-04-07 01:45:19
【问题描述】:

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

$ ionic start mySecondApp 选项卡

$ cd mySecondApp

$离子平台添加ios

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

$ vim www/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)

})

保存

$ ionic build ios

$ ionic emulate ios

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

知道如何解决这个问题吗?我试过 ngcordova 也不行

模拟器上也是这样

如果你想使用离子视图,这里是二维码

或者直接下载项目:here

【问题讨论】:

    标签: javascript angularjs geolocation ionic-framework ionic


    【解决方案1】:

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

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

    您需要在设备准备好后进行地理定位。例如,下面的 Jquery 代码将在没有那个讨厌的警报的情况下进行地理定位:

    $(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() {

    【讨论】:

    • 这个解决方案仍然会弹出丑陋的警报。
    • 然后检查你的代码,它确实有效,我在这个问题中迷失了一周
    猜你喜欢
    • 2015-11-08
    • 2022-01-15
    • 1970-01-01
    • 1970-01-01
    • 2013-03-16
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-07-30
    相关资源
    最近更新 更多