我遇到了地理位置问题,我需要在iOS上出现geolocation
提示并为用户单击“接受”后运行功能。
当前我正在ngOnInit
上检查用户位置,但是如果他们尚未接受,则在检查用户位置后运行的功能将无法正常工作。
这是我目前拥有的:
this.geolocation.getCurrentPosition({enableHighAccuracy: false, timeout: 3000, maximumAge: 100000})
.then((resp) => {
this.userLocation.lat = resp.coords.latitude;
this.userLocation.lng = resp.coords.longitude;
this.getLocation();
}).catch((error) => {
console.log(error)
});
因此this.getLocation();
函数在地理位置找到位置后运行,但是在用户接受“允许该应用程序使用您的位置”提示后,我将如何运行此代码?
谢谢!
答案 0 :(得分:0)
cordova-plugin-geolocation
确实不允许这样做。
您可以使用其他插件,例如cordova-diagnostic-plugin,允许您请求任何权限。
cordova.plugins.diagnostic.requestLocationAuthorization(function(status){
switch(status){
case cordova.plugins.diagnostic.permissionStatus.NOT_REQUESTED:
console.log("Permission not requested");
break;
case cordova.plugins.diagnostic.permissionStatus.DENIED:
console.log("Permission denied");
break;
case cordova.plugins.diagnostic.permissionStatus.GRANTED:
console.log("Permission granted always");
break;
case cordova.plugins.diagnostic.permissionStatus.GRANTED_WHEN_IN_USE:
console.log("Permission granted only when in use");
break;
}
}, function(error){
console.error(error);
}, cordova.plugins.diagnostic.locationAuthorizationMode.ALWAYS);