gpt4 book ai didi

Cordova 地理定位插件 getCurrentPosition 已弃用

转载 作者:可可西里 更新时间:2023-11-01 16:09:34 26 4
gpt4 key购买 nike

我有一个 ionic 应用程序,它正在尝试完全按照文档中所示使用地理定位。

var posOptions = {timeout: 10000, enableHighAccuracy: true};

$cordovaGeolocation.getCurrentPosition(posOptions)
.then(function (position) {
// do something
}, function(err) {
console.log(err);
// error
});

但是现在它已经停止工作并且在控制台中给我这个警告。

getCurrentPosition() and watchPosition() are deprecated on insecure origins, and support will be removed in the future. You should consider switching your application to a secure origin, such as HTTPS. See https://goo.gl/rStTGz for more details.

这似乎是对 w3c 规范的巨大改变,令我感到惊讶的是没有很多关于它的文档。谁能告诉我我在这里缺少什么。

该应用程序在手机上运行,​​因此它自然地在本地主机上监听。它通过 http 而不是 https 与服务器通信,但我不明白为什么这会影响获取地理坐标

我正在浏览器上测试该应用程序,并在 ios 设备上将其作为 cordova 应用程序进行测试。

最佳答案

我直接使用 HTML5 地理定位。但 cordova 插件只是它的角度包装器,正如他们所说 in this Stack Overflow answer .

显然浏览器不能再使用来自 http 页面的地理定位。但对于 ionic 来说,这只是 livereload 的问题。 There是使用 http-proxy 使 livereload 在 https 上工作的一些解决方法。

在没有 livereload 的情况下在设备上运行应用程序(即末尾没有“-l”的“ionic run android”)工作正常。

请记住在设备就绪事件后运行 getCurrentPosition。对我来说,这个在其中一个 Controller 中工作:

            document.addEventListener("deviceready", function () {
console.info('deviceready fired!');
window.navigator.geolocation.getCurrentPosition(function(position) {
console.info('Location from Cordova:');
console.info("Latitude: " + position.coords.latitude + "; Longitude: " + position.coords.longitude);
});

关于Cordova 地理定位插件 getCurrentPosition 已弃用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33862925/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com