Cordova地理位置插件getCurrentPosition已弃用
我有一个ionic应用程序,它正试图完全按照文档所示使用地理位置Cordova地理位置插件getCurrentPosition已弃用,cordova,http,https,geolocation,ionic,Cordova,Http,Https,Geolocation,Ionic,我有一个ionic应用程序,它正试图完全按照文档所示使用地理位置 var posOptions = {timeout: 10000, enableHighAccuracy: true}; $cordovaGeolocation.getCurrentPosition(posOptions) .then(function (position) { // do something }, function(err) { console.log(err); // err
var posOptions = {timeout: 10000, enableHighAccuracy: true};
$cordovaGeolocation.getCurrentPosition(posOptions)
.then(function (position) {
// do something
}, function(err) {
console.log(err);
// error
});
但是现在它已经停止工作了,控制台给了我这个警告
getCurrentPosition()和watchPosition()在不安全的来源上不推荐使用,将来将删除支持。您应该考虑将应用程序切换到安全的原点,例如HTTPS。有关更多详细信息,请参阅
这似乎是对w3c规范的一个巨大改变,我只是很惊讶没有太多关于它的文档。谁能告诉我我在这里错过了什么
该应用程序在手机上运行,因此它可以自然地在本地主机上进行监听。它通过http而不是https与服务器通信,但我不明白为什么这会影响获取地理坐标
我正在浏览器上测试该应用程序,并将其作为cordova应用程序在ios设备上进行测试 我直接使用HTML5地理定位。但正如他们所说,cordova插件只是它上面的角包装 显然,浏览器不能再从http页面使用地理定位了。但对于爱奥尼亚来说,这只是利弗雷罗德的问题。是使用http代理让livereload在https上工作的一些变通方法 在没有livereload的设备上运行应用程序(即“ionic run android”末尾没有“-l”)效果良好 记住在deviceready事件之后运行getCurrentPosition。对我来说,这个在其中一个控制器中工作:
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);
});
在chrome浏览器中测试应用程序时,只需将应用程序url(通常为192.xxx.xxx.xxx:3000)更改为localhost:3000
您需要确保您的媒体策略支持该策略,但不会出现安全错误。是否在浏览器上进行测试?google chrome上的非https网站将不推荐地理定位,但这不会影响cordova应用程序。我在浏览器上测试了它,作为cordova应用程序中的ios应用程序,html文件是本地安装的还是显示远程网站?该网站是否使用http或https?本地安装。我认为默认情况下,ionic构建使用http。但它是本地的,所以这不重要,不是吗?