在IONIC中使用cordova-plugin-geolocation打开地理定位

时间:2018-05-19 16:57:57

标签: javascript cordova ionic-framework cordova-plugins

我正在使用IONIC V1我知道如何使用地理定位插件(cordova-plugin-geolocation)并且它有效。当我在我的地图部分时,我收到"allow name_app to access to device location"的通知。

enter image description here

如果我的答案是ALLOW,则应用程序会假定gps已激活。

但是在其他应用程序的风格中,我希望这会将我带到设备的配置,以便在图像中标记gps的激活,以便能够激活{{1}如果它没有被激活。 (gps在我的语言中)

enter image description here

我该怎么办?

1 个答案:

答案 0 :(得分:1)

如果正确理解您的问题,如果未启用GPS,则需要打开原始gps设置。

您可以使用以下任何选项:

使用cordova-diagnostic-plugin插件

诊断插件的

isGpsLocationEnabled()功能可以帮助您了解GPS是否已启用。

以下是用法:

cordova.plugins.diagnostic.isGpsLocationEnabled(function(enabled) {
        if (enabled) {
          //enabled 
        } else {
          // open location native location settings 
          cordova.plugins.diagnostic.switchToLocationSettings();
        }
      },
      function(error) {
        console.error("The following error occurred: " + error);
      });

使用request-location-accuracy插件

如果位置精度插件的request()函数给你错误回调。在那里检查错误代码是否为ERROR_USER_DISAGREED,如果为true,则使用cordova-diagnostic-plugin的switchToLocationSettings()打开本机设置。

以下是用法:

function onRequestSuccess(success) {
  console.log("Successfully requested accuracy: " + success.message);
}
function onRequestFailure(error) {
  console.error("Accuracy request failed: error code=" + error.code + "; error message=" + error.message);
  if (error.code !== cordova.plugins.locationAccuracy.ERROR_USER_DISAGREED) {
    if (window.confirm("Failed to automatically set Location Mode to 'High Accuracy'. Would you like to switch to the Location Settings page and do this manually?")) {
      // open location native location settings using diagnostic plugin
      cordova.plugins.diagnostic.switchToLocationSettings();
    }
  }
}
cordova.plugins.locationAccuracy.request(onRequestSuccess, onRequestFailure, cordova.plugins.locationAccuracy.REQUEST_PRIORITY_HIGH_ACCURACY);