Cordova.diganosic.IsLocationEnabled始终返回真值

Cordova.diganosic.IsLocationEnabled始终返回真值,cordova,ionic,Cordova,Ionic,正如标题所说,无论是关闭位置还是成功回调,都会被触发。有人有什么建议吗 if (window.cordova) { window.cordova.plugins.diagnostic.isLocationEnabled(locationEnabled,locationDisabled ); } function locationEnabled() {.. } function locationDisabled() {...} 我正在用lolipop在三星galaxy s5上测试它,is

正如标题所说,无论是关闭位置还是成功回调,都会被触发。有人有什么建议吗

if (window.cordova) {
    window.cordova.plugins.diagnostic.isLocationEnabled(locationEnabled,locationDisabled );
}
function locationEnabled() {.. }
function locationDisabled() {...}

我正在用lolipop在三星galaxy s5上测试它,
isLocationEnabled
并不像你想象的那样工作

作为参数传递的第一个函数是“成功回调”。这并不意味着位置已启用,它只是意味着插件已成功检索到位置状态。一个布尔值作为参数给出,在这里您可以知道是否启用了位置

您传递的第二个函数是当插件无法获取位置状态时调用的函数

因此,您需要使代码看起来像这样:

function locationEnabled() {
    // Blabla
}

function locationDisabled() {
    // Blabla
}

if (window.cordova) {
    window.cordova.plugins.diagnostic.isLocationEnabled(function (locationEnabled) {
        if (locationEnabled) {
            locationEnabled();
        } else {
            locationDisabled();
        }
    }, function (error) {
      console.log("The following error occurred: " + error);
    });
}
有关更多详细信息,请查看