Cordova Angularjs要求GPS

时间:2016-02-02 22:53:10

标签: angularjs cordova gps

我为需要GPS的应用编程。 如果GPS已关闭,我如何要求用户打开GPS,如谷歌地图?经过一段时间的googleing,我发现没有比较... 我的另一个问题是,为什么我得到"使用位置? - 2",当GPS关闭时?我想,如果GPS关闭,$ window.navigator.geolocation是假的吗?

Google Maps

controller.js

if ($window.navigator && $window.navigator.geolocation) { 
    function success(pos) {
        $rootScope.position = { x: pos.coords.latitude, y: pos.coords.longitude };
    }
    function fail(error) {
        alert("Use location? - 2");
    }
     $window.navigator.geolocation.getCurrentPosition(success, fail, { maximumAge: 500000, enableHighAccuracy: true, timeout: 6000 });
} else {
    alert("Use location? - 1");
}

2 个答案:

答案 0 :(得分:2)

如果启用了gps,有许多插件可以帮助您获取。然后,您可以要求用户更改位置设置。其中之一是Diagnostics Plugin https://www.npmjs.com/package/cordova.plugins.diagnostic。我正在使用它。 (至少要调用位置设置)。

答案 1 :(得分:0)

cordova-plugin-request-location-accuracy cordova插件会触发原生对话窗口,要求用户从应用启用GPS,而无需导航到手机设置,然后返回到您的应用。

https://github.com/dpa99c/cordova-plugin-request-location-accuracy

唯一不足的是它只适用于Android。使用此插件无法在iOS设备上启用应用程序中的GPS。但是,如插件文档中所述,您可以使用cordova.plugins.diagnostic插件导航到手机的设置,并手动打开GPS作为iOS设备的后备。

我已经做了很多研究,目前,这是我迄今为止找到的最佳解决方案。我知道iOS上的谷歌地图应用程序可以做到这一点,所以它应该可以从Cordova插件中获得,但我想还没有人做过。