这是一个跟进: Location permission alert on iPhone with PhoneGap
没有一个有效的答案,我仍然得到了答案 “/ 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);
}
}
我无法摆脱这个可怕的信息。我正在使用最新的离子和cordova版本以及普通的'ol phonegap geolocation插件。
我尝试过的: - 对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(“deviceready”,function(){ navigator.geolocation.getCurrentPosition(onsuccess,onerror,params); },false);
将cordova.js移动到要加载的第一个脚本。
正常的权限提醒会显示一次。丑陋的一个显示2-3次,然后再次显示。
非常感谢任何帮助。
答案 0 :(得分:0)
我明白了。如果您要立即询问地理位置,请在路线上添加延迟,以便为我修复。
resolve : {
waitOnMe: function ( $timeout) {
return $timeout(function () { }, 100);
}
}