带有PhoneGap和ionic的iPhone上的位置权限警报



这是以下内容的后续内容:带有PhoneGap 的iPhone上的位置权限警报

图像:https://i.stack.imgur.com/7AQjG.jpg

那里的答案都不起作用,我仍然得到"/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);
}
}

我无法摆脱这个可怕的信息。我使用的是最新的ionic和cordova版本,带有简单的"ol phonegap地理定位插件"。

我尝试过的:-对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,oneror,params);},false);

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

  • 将所有js文件移到root

正常权限警报显示一次。丑陋的那只出现了2-3次,然后就再也没有出现了。

如有任何帮助,我们将不胜感激。

我想明白了。如果你要求立即进行地理定位,在路线上添加延迟为我解决了问题。

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

最新更新