【问题标题】:Location permission alert on iPhone with PhoneGap and ioniciPhone上使用PhoneGap和离子的位置许可警报
【发布时间】:2015-06-24 20:23:06
【问题描述】:

这是来自以下方面的跟进: Location permission alert on iPhone with PhoneGap

图片:http://imgur.com/c2KBqbm

那里的答案都不起作用,我仍然得到 “/private/var ...想使用您的位置”消息。 我在工厂里有 $cordovaGeolocation

.factory('$cordovaGeolocation', ['$q', 'geo', function ($q) {

return {
    getCurrentPosition: function (options) {
        var q = $q.defer();

        navigator.geolocation.getCurrentPosition(function (result) {
            q.resolve(result);
            console.log(JSON.stringify(q.resolve(result)));
        }, function (err) {
            q.reject(err);
        }, options);

        return q.promise;
    },

    watchPosition: function (options) {
        var q = $q.defer();

        var watchID = navigator.geolocation.watchPosition(function (result) {
            q.notify(result);
        }, function (err) {
            q.reject(err);
        }, options);

        q.promise.cancel = function () {
            navigator.geolocation.clearWatch(watchID);
        };

        q.promise.clearWatch = function (id) {
            navigator.geolocation.clearWatch(id || watchID);
        };

        q.promise.watchID = watchID;

        return q.promise;
    },

    clearWatch: function (watchID) {
        return navigator.geolocation.clearWatch(watchID);
    }
};
}])

并在我的 .state 中以解析方式调用它

resolve : {
  initialGeo: function ($cordovaGeolocation) {
    var posOptions = {timeout: 1000, enableHighAccuracy: true};
    return $cordovaGeolocation.getCurrentPosition(posOptions);
  }
}

我无法摆脱这个可怕的信息。我正在使用带有普通 'ol phonegap 地理定位插件的最新 ionic 和 cordova 版本。

我尝试过的: - 对 config.xml 的更改

<feature name="Geolocation">
    <param name="ios-package" value="CDVLocation" />
</feature>
<plugins>
    <plugin name="Device" value="CDVDevice" />
    <plugin name="Logger" value="CDVLogger" />
    <plugin name="Compass" value="CDVLocation" />
    <plugin name="NetworkStatus" value="CDVConnection" />
    <plugin name="Debug Console" value="CDVDebugConsole" />
    <plugin name="Geolocation" value="CDVLocation" />
    <plugin name="SplashScreen" value="CDVSplashScreen" />
    <plugin name="Battery" value="CDVBattery" />
    <plugin name="Globalization" value="CDVGlobalization" />
</plugins>
  • 拆厂做事

    document.addEventListener("设备就绪", function(){ navigator.geolocation.getCurrentPosition(onsuccess, onerror, params); },假);

  • 将 cordova.js 移动到要加载的第一个脚本。

  • 将所有 js 文件移至根目录。

正常权限提示显示一次。丑陋的显示2-3次,然后不再显示。

任何帮助将不胜感激。

【问题讨论】:

    标签: ios angularjs cordova ionic


    【解决方案1】:

    我想通了。如果您要立即进行地理定位,请在路线上添加延迟,为我修复它。

    resolve : {
      waitOnMe: function ( $timeout) {
      return  $timeout(function () { }, 100);
      }
    }
    

    【讨论】:

      猜你喜欢
      • 2010-12-13
      • 2016-04-24
      • 2015-05-31
      • 1970-01-01
      • 1970-01-01
      • 2018-05-23
      • 2015-04-07
      • 2011-11-06
      相关资源
      最近更新 更多