运行 接受地理定位权限后的功能

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);

Docs