运行 接受地理定位权限后的功能
Run function after geolocation permission accepted
我遇到了一个地理定位问题,我需要 运行 在用户的 iOS 上出现 geolocation
提示并且他们点击 "Accept".
目前我正在做的是 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();
函数 运行s 在地理定位找到位置之后,但是在用户接受 "allow this application to use your location" 提示后我如何 运行 这段代码?
谢谢!
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);
我遇到了一个地理定位问题,我需要 运行 在用户的 iOS 上出现 geolocation
提示并且他们点击 "Accept".
目前我正在做的是 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();
函数 运行s 在地理定位找到位置之后,但是在用户接受 "allow this application to use your location" 提示后我如何 运行 这段代码?
谢谢!
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);