嗨,我刚刚开始学习aparche cordova。
我正在尝试将地理位置api连接到应用程序,并且已经使用cordova plugin add cordova-plugin-geolocation为cordova安装了地理位置api
并且正在使用apache-cordova documentation的引用。
我的JavaScript文件是

// Listening for the device to be ready
document.addEventListener("deviceready", onDeviceReady, false);

function onDeviceReady() {
    console.log("navigator.geolocation should be able to run successfully now...");
    navigator.geolocation.getCurrentPosition(onSuccess,onError);
}
// onSuccess Callback
var onSuccess = function(position) {
    // current GPS coordinates
    if(navigator.geolocation){
        console.log('Geolocation is there '+ position);
        navigator.geolocation.getCurrentPosition(function(position) {
            alert('Latitude: '    + position.coords.latitude          + '\n' +
            'Longitude: '         + position.coords.longitude         + '\n' +
            'Altitude: '          + position.coords.altitude          + '\n' +
            'Accuracy: '          + position.coords.accuracy          + '\n' +
            'Altitude Accuracy: ' + position.coords.altitudeAccuracy  + '\n' +
            'Heading: '           + position.coords.heading           + '\n' +
            'Speed: '             + position.coords.speed             + '\n' +
            'Timestamp: '         + position.timestamp                + '\n');
            }, function(error) {
                console.log('Error while connecting to geolocation ' + error)
            },
            {timeout:10000});
    }
    else {
        console.log('Geolocation is not there');
    }
}

// onError Callback receives a PositionError object
function onError(error) {
    alert('code: '    + error.code    + '\n' +
          'message: ' + error.message + '\n');
}


我在控制台上得到输出


  地理位置在那里未定义


即,位置=未定义。
并且发生onSuccess事件时我没有收到任何警报框。
该代码在ios上运行正常,但在Android /浏览器上却无法运行

最佳答案

我有这个问题。这是因为在开发模式下,URL为:http //:192.168.0.105

当网址具有https://192.168.0.105之类的ssl时,在移动工作中进行地理位置定位

您可以使用以下方法制作假证书:

https://blog.filippo.io/mkcert-valid-https-certificates-for-localhost/

例如,在类星体框架中,我设置:

 devServer: {
      https: true,
      port: 8080,
      open: true // opens browser window automatically
    },


而这种配置解决了我的问题。

07-24 09:48
查看更多